Fixed animation interpolation not working after animations are stopped.

This commit is contained in:
Luis C.M committed 2024-02-19 18:24:39 -06:00
1 parent f84b16b29a
commit fd7412148d
2 files changed
+13 -15

No files matched your search

@@ -318,21 +318,19 @@ public class PacketHandlerClient extends PacketHandlerServer{
}
if (animationData != null) {
animationData.readFromNBT(compound);
int animationId;
if (compound.hasKey("AnimationID")) {
animationId = compound.getInteger("AnimationID");
} else {
Animation animation = new Animation();
animation.readFromNBT(compound.getCompoundTag("Animation"));
ClientCacheHandler.animationCache.put(animation.getID(), animation);
animationId = animation.getID();
}
int animationId;
if (compound.hasKey("AnimationID")) {
animationId = compound.getInteger("AnimationID");
} else {
Animation animation = new Animation();
animation.readFromNBT(compound.getCompoundTag("Animation"));
ClientCacheHandler.animationCache.put(animation.getID(), animation);
animationId = animation.getID();
}
if (animationData.allowAnimation) {
animationData.setAnimation(ClientCacheHandler.animationCache.get(animationId));
Client.sendData(EnumPacketServer.CacheAnimation, animationId);
}
animationData.setAnimation(ClientCacheHandler.animationCache.get(animationId));
animationData.readFromNBT(compound);
Client.sendData(EnumPacketServer.CacheAnimation, animationId);
}
}
else if(type == EnumPacketClient.DISABLE_MOUSE_INPUT) {
@@ -153,7 +153,7 @@ public class AnimationData implements IAnimationData {
} else {
Animation newAnim = new Animation();
newAnim.readFromNBT(((Animation) animation).writeToNBT());
if (this.animation != null && newAnim.frames.size() > 0) {
if (this.isActive() && !newAnim.frames.isEmpty()) {
Frame frame = (Frame) this.animation.currentFrame();
if (frame != null) {
Frame firstFrame = newAnim.frames.get(0);