Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -992,6 +992,20 @@ public AdvancedPlayerAnimBone registerPlayerAnimBone(String name) {
return registerPlayerAnimBone(new AdvancedPlayerAnimBone(name));
}

@Override
public boolean modifiesPart(String name) {
return this.activeBones.containsKey(name);
}

@Override
public boolean bendsPart(String name) {
if (modifiesPart(name) && this.bones.containsKey(name)) {
AdvancedPlayerAnimBone bone = this.bones.get(name);
return bone.bendEnabled && bone.bend != 0;
}
return false;
}

/**
* Adds the given bone to the bones list for this controller
* <p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,16 @@ public void setupAnim(AnimationData state) {
return anim != null ? anim.getFirstPersonConfiguration() : IAnimation.super.getFirstPersonConfiguration();
}

@Override
public boolean modifiesPart(String name) {
return anim != null && anim.modifiesPart(name);
}

@Override
public boolean bendsPart(String name) {
return anim != null && anim.bendsPart(name);
}

@Override
public String toString() {
return "AnimationContainer{" +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,20 @@ public PlayerAnimBone get3DTransform(@NotNull PlayerAnimBone bone) {
return bone;
}

@Override
public boolean modifiesPart(String name) {
return snapshots.containsKey(name);
}

@Override
public boolean bendsPart(String name) {
if (modifiesPart(name)) {
AdvancedBoneSnapshot snapshot = snapshots.get(name);
return snapshot.bendEnabled && snapshot.getBend() != 0;
}
return false;
}

@Override
public @NotNull String toString() {
return "AnimationSnapshot{" +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,22 @@ public boolean removeLayer(int layerLevel) {
return IAnimation.super.getFirstPersonConfiguration();
}

@Override
public boolean modifiesPart(String name) {
for (int i = layers.size(); i > 0;) {
if (layers.get(--i).right().modifiesPart(name)) return true;
}
return false;
}

@Override
public boolean bendsPart(String name) {
for (int i = layers.size(); i > 0;) {
if (layers.get(--i).right().bendsPart(name)) return true;
}
return false;
}

public int getPriority() {
int priority = 0;
for (int i=layers.size()-1; i>=0; i--) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,4 +84,21 @@ default FirstPersonConfiguration getFirstPersonConfiguration() {
default boolean canRemove() {
return false;
}

//TODO Maybe make these two methods no longer default the next breaking change
/**
* Useful for compatibility patches.
* You can see which parts are modified by the mod.
*/
default boolean modifiesPart(String name) {
return false;
}

/**
* Useful for compatibility patches.
* You can see which parts are being bent by the mod.
*/
default boolean bendsPart(String name) {
return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,16 @@ public void setupAnim(AnimationData state) {
return IAnimation.super.getFirstPersonConfiguration();
}

@Override
public boolean modifiesPart(String name) {
return animation != null && animation.modifiesPart(name);
}

@Override
public boolean bendsPart(String name) {
return animation != null && animation.bendsPart(name);
}

@Override
public String toString() {
return "ModifierLayer{" +
Expand Down