From 96caf6e033300141fb06ca6f9f3ef0b30b653ba8 Mon Sep 17 00:00:00 2001 From: "Luis C.M" <42545778+c0508383@users.noreply.github.com> Date: Mon, 23 Jan 2023 22:31:04 -0600 Subject: [PATCH] Simplified player animation code and removed unused fields. --- src/main/java/noppes/npcs/AnimationData.java | 7 ----- .../npcs/controllers/data/FramePart.java | 4 --- .../noppes/npcs/mixin/MixinModelRenderer.java | 29 +++---------------- 3 files changed, 4 insertions(+), 36 deletions(-) diff --git a/src/main/java/noppes/npcs/AnimationData.java b/src/main/java/noppes/npcs/AnimationData.java index d7f9d7f97..719f5a34a 100644 --- a/src/main/java/noppes/npcs/AnimationData.java +++ b/src/main/java/noppes/npcs/AnimationData.java @@ -5,15 +5,11 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import noppes.npcs.api.handler.data.IAnimationData; import noppes.npcs.api.handler.data.IAnimation; -import noppes.npcs.constants.EnumAnimationPart; import noppes.npcs.constants.EnumPacketClient; import noppes.npcs.controllers.data.Animation; -import noppes.npcs.controllers.data.FramePart; import noppes.npcs.controllers.data.PlayerData; import noppes.npcs.entity.EntityNPCInterface; -import java.util.HashMap; - public class AnimationData implements IAnimationData { //Server-side: DataDisplay, PlayerData //Client-side: DataDisplay, EntityPlayer @@ -22,9 +18,6 @@ public class AnimationData implements IAnimationData { public Animation animation; public boolean allowAnimation = false; - //client-sided use only - public HashMap originalPivots = new HashMap<>(); - public AnimationData(Object parent){ this.parent = parent; } diff --git a/src/main/java/noppes/npcs/controllers/data/FramePart.java b/src/main/java/noppes/npcs/controllers/data/FramePart.java index d321caa00..927ff008c 100644 --- a/src/main/java/noppes/npcs/controllers/data/FramePart.java +++ b/src/main/java/noppes/npcs/controllers/data/FramePart.java @@ -24,10 +24,6 @@ public class FramePart implements IFramePart { public float[] prevPivots = {0,0,0}; public float partialRotationTick; public float partialPivotTick; - public float[] originalRotations = {(float) Math.PI,(float) Math.PI,(float) Math.PI}; - public float[] originalPivots = {0,0,0}; - public float[] renderRotations = {(float) Math.PI,(float) Math.PI,(float) Math.PI}; - public float[] renderPivots = {0,0,0}; public FramePart(){} diff --git a/src/main/java/noppes/npcs/mixin/MixinModelRenderer.java b/src/main/java/noppes/npcs/mixin/MixinModelRenderer.java index bbbe3382c..f8327ae3c 100644 --- a/src/main/java/noppes/npcs/mixin/MixinModelRenderer.java +++ b/src/main/java/noppes/npcs/mixin/MixinModelRenderer.java @@ -2,7 +2,6 @@ package noppes.npcs.mixin; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.model.ModelRenderer; import noppes.npcs.AnimationData; @@ -17,7 +16,6 @@ import org.spongepowered.asm.mixin.Overwrite; import org.spongepowered.asm.mixin.Shadow; import java.lang.reflect.Field; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -123,44 +121,25 @@ public abstract class MixinModelRenderer { part.rotation = new float[]{prevAngleX, prevAngleY, prevAngleZ}; ClientEventHandler.originalValues.put((ModelRenderer) (Object) this, part); } + FramePart originalPart = ClientEventHandler.originalValues.get((ModelRenderer) (Object) this); if (animData.isActive()) { Frame frame = (Frame) animData.animation.currentFrame(); if (frame.frameParts.containsKey(partType)) { FramePart part = frame.frameParts.get(partType); if (partType == mainPartType) { - if (!animData.originalPivots.containsKey(part.part)) { - FramePart originalPart = new FramePart(part.part); - originalPart.originalRotations = new float[]{this.rotateAngleX, this.rotateAngleY, this.rotateAngleZ}; - originalPart.originalPivots = new float[]{this.rotationPointX, this.rotationPointY, this.rotationPointZ}; - animData.originalPivots.put(part.part, originalPart); - } else { - this.rotateAngleX = animData.originalPivots.get(part.part).prevRotations[0]; - this.rotateAngleY = animData.originalPivots.get(part.part).prevRotations[1]; - this.rotateAngleZ = animData.originalPivots.get(part.part).prevRotations[2]; - } - FramePart originalPart = animData.originalPivots.get(part.part); part.interpolateAngles(); part.interpolateOffset(); - this.rotationPointX = originalPart.originalPivots[0] + part.prevPivots[0]; - this.rotationPointY = originalPart.originalPivots[1] + part.prevPivots[1]; - this.rotationPointZ = originalPart.originalPivots[2] + part.prevPivots[2]; + this.rotationPointX = originalPart.pivot[0] + part.prevPivots[0]; + this.rotationPointY = originalPart.pivot[1] + part.prevPivots[1]; + this.rotationPointZ = originalPart.pivot[2] + part.prevPivots[2]; this.rotateAngleX = part.prevRotations[0]; this.rotateAngleY = part.prevRotations[1]; this.rotateAngleZ = part.prevRotations[2]; - animData.originalPivots.get(part.part).prevRotations = new float[]{this.rotateAngleX, this.rotateAngleY, this.rotateAngleZ}; } else { currentPart = part; this.rotateAngleZ += part.prevRotations[2]; } } - } else if (animData.originalPivots.containsKey(partType) && partType == mainPartType) { - this.rotateAngleX = animData.originalPivots.get(partType).originalRotations[0]; - this.rotateAngleY = animData.originalPivots.get(partType).originalRotations[1]; - this.rotateAngleZ = animData.originalPivots.get(partType).originalRotations[2]; - this.rotationPointX = animData.originalPivots.get(partType).originalPivots[0]; - this.rotationPointY = animData.originalPivots.get(partType).originalPivots[1]; - this.rotationPointZ = animData.originalPivots.get(partType).originalPivots[2]; - animData.originalPivots.remove(partType); } } }