From 3b11ddb4b494e5d0200c1979a051b87bf2a019ef Mon Sep 17 00:00:00 2001 From: "Luis C.M" <42545778+c0508383@users.noreply.github.com> Date: Sat, 7 Jan 2023 14:10:36 -0600 Subject: [PATCH] Simplified player animation rendering, similar to the NPC puppet part commit on dev. --- src/api | 2 +- .../controllers/data/PlayerModelData.java | 7 -- .../noppes/npcs/mixin/MixinModelRenderer.java | 87 +++---------------- .../java/noppes/npcs/roles/JobPuppet.java | 8 +- 4 files changed, 13 insertions(+), 91 deletions(-) diff --git a/src/api b/src/api index 5e380a3e2..98ac7bd2c 160000 --- a/src/api +++ b/src/api @@ -1 +1 @@ -Subproject commit 5e380a3e2ed00a601a4e3eb79125de420c1ebc89 +Subproject commit 98ac7bd2c471e467b47d3fc2b5d545281318ab3e diff --git a/src/main/java/noppes/npcs/controllers/data/PlayerModelData.java b/src/main/java/noppes/npcs/controllers/data/PlayerModelData.java index 4b9a372bb..7c4aef7ac 100644 --- a/src/main/java/noppes/npcs/controllers/data/PlayerModelData.java +++ b/src/main/java/noppes/npcs/controllers/data/PlayerModelData.java @@ -35,13 +35,6 @@ public class PlayerModelData implements IPlayerModelData { public float modelRotPartialTicks; public float[] modelRotations = {0,0,0}; - public float[] bipedRotsHead = {0,0,0}; - public float[] bipedRotsBody = {0,0,0}; - public float[] bipedRotsLeftArm = {0,0,0}; - public float[] bipedRotsRightArm = {0,0,0}; - public float[] bipedRotsLeftLeg = {0,0,0}; - public float[] bipedRotsRightLeg = {0,0,0}; - public PlayerModelData(PlayerData parent) { this.parent = parent; this.player = parent.player; diff --git a/src/main/java/noppes/npcs/mixin/MixinModelRenderer.java b/src/main/java/noppes/npcs/mixin/MixinModelRenderer.java index 223e001af..83348d0bf 100644 --- a/src/main/java/noppes/npcs/mixin/MixinModelRenderer.java +++ b/src/main/java/noppes/npcs/mixin/MixinModelRenderer.java @@ -45,84 +45,17 @@ public class MixinModelRenderer { PlayerModelData modelData = Client.playerModelData.get(ClientEventHandler.renderingPlayer.getUniqueID()); this.setModelParts(modelData); if (modelData.enabled) { - if(isPart(modelData.head)){ - this.rotateAngleX = modelData.bipedRotsHead[0]; - this.rotateAngleY = modelData.bipedRotsHead[1]; - this.rotateAngleZ = modelData.bipedRotsHead[2]; - this.setInterpolatedAngles(modelData,modelData.head); - } + JobPuppet.PartConfig[] partConfigs = new JobPuppet.PartConfig[]{modelData.head,modelData.body,modelData.larm,modelData.rarm,modelData.lleg,modelData.rleg}; - if(isPart(modelData.body)){ - this.rotateAngleX = modelData.bipedRotsBody[0]; - this.rotateAngleY = modelData.bipedRotsBody[1]; - this.rotateAngleZ = modelData.bipedRotsBody[2]; - this.setInterpolatedAngles(modelData,modelData.body); - } - - if(isPart(modelData.larm)){ - this.rotateAngleX = modelData.bipedRotsLeftArm[0]; - this.rotateAngleY = modelData.bipedRotsLeftArm[1]; - this.rotateAngleZ = modelData.bipedRotsLeftArm[2]; - this.setInterpolatedAngles(modelData,modelData.larm); - } - - if(isPart(modelData.rarm)){ - this.rotateAngleX = modelData.bipedRotsRightArm[0]; - this.rotateAngleY = modelData.bipedRotsRightArm[1]; - this.rotateAngleZ = modelData.bipedRotsRightArm[2]; - this.setInterpolatedAngles(modelData,modelData.rarm); - } - - if(isPart(modelData.lleg)){ - this.rotateAngleX = modelData.bipedRotsLeftLeg[0]; - this.rotateAngleY = modelData.bipedRotsLeftLeg[1]; - this.rotateAngleZ = modelData.bipedRotsLeftLeg[2]; - this.setInterpolatedAngles(modelData,modelData.lleg); - } - - if(isPart(modelData.rleg)){ - this.rotateAngleX = modelData.bipedRotsRightLeg[0]; - this.rotateAngleY = modelData.bipedRotsRightLeg[1]; - this.rotateAngleZ = modelData.bipedRotsRightLeg[2]; - this.setInterpolatedAngles(modelData,modelData.rleg); - } - - if(isPart(modelData.head)){ - this.addInterpolatedOffset(modelData, modelData.head); - } - if(isPart(modelData.body)){ - this.addInterpolatedOffset(modelData, modelData.body); - } - if(isPart(modelData.larm)){ - this.addInterpolatedOffset(modelData, modelData.larm); - } - if(isPart(modelData.rarm)){ - this.addInterpolatedOffset(modelData, modelData.rarm); - } - if(isPart(modelData.lleg)){ - this.addInterpolatedOffset(modelData, modelData.lleg); - } - if(isPart(modelData.rleg)){ - this.addInterpolatedOffset(modelData, modelData.rleg); - } - - if(isPart(modelData.head)) { - modelData.bipedRotsHead = new float[]{this.rotateAngleX, this.rotateAngleY, this.rotateAngleZ}; - } - if(isPart(modelData.body)) { - modelData.bipedRotsBody = new float[]{this.rotateAngleX, this.rotateAngleY, this.rotateAngleZ}; - } - if(isPart(modelData.larm)) { - modelData.bipedRotsLeftArm = new float[]{this.rotateAngleX, this.rotateAngleY, this.rotateAngleZ}; - } - if(isPart(modelData.rarm)) { - modelData.bipedRotsRightArm = new float[]{this.rotateAngleX, this.rotateAngleY, this.rotateAngleZ}; - } - if(isPart(modelData.lleg)) { - modelData.bipedRotsLeftLeg = new float[]{this.rotateAngleX, this.rotateAngleY, this.rotateAngleZ}; - } - if(isPart(modelData.rleg)) { - modelData.bipedRotsRightLeg = new float[]{this.rotateAngleX, this.rotateAngleY, this.rotateAngleZ}; + for (int i = 0; i < partConfigs.length; i++) { + if (isPart(partConfigs[i])) { + this.rotateAngleX = partConfigs[i].prevRotations[0]; + this.rotateAngleY = partConfigs[i].prevRotations[1]; + this.rotateAngleZ = partConfigs[i].prevRotations[2]; + this.setInterpolatedAngles(modelData,partConfigs[i]); + this.addInterpolatedOffset(modelData,partConfigs[i]); + partConfigs[i].prevRotations = new float[]{this.rotateAngleX, this.rotateAngleY, this.rotateAngleZ}; + } } } } diff --git a/src/main/java/noppes/npcs/roles/JobPuppet.java b/src/main/java/noppes/npcs/roles/JobPuppet.java index b8c8b0d12..69339685a 100644 --- a/src/main/java/noppes/npcs/roles/JobPuppet.java +++ b/src/main/java/noppes/npcs/roles/JobPuppet.java @@ -105,9 +105,8 @@ public class JobPuppet extends JobInterface{ public float pivotZ = 0f; //Client-sided use - public float prevPivotX = 0f; - public float prevPivotY = 0f; - public float prevPivotZ = 0f; + public float[] prevRotations = new float[]{0,0,0}; + public float[] prevPivots = new float[]{0,0,0}; public float partialRotationTick = 0f; public float partialPivotTick = 0f; @@ -119,9 +118,6 @@ public class JobPuppet extends JobInterface{ public float originalPivotY = 0f; public float originalPivotZ = 0f; - public float[] prevRotations = new float[]{0,0,0}; - public float[] prevPivots = new float[]{0,0,0}; - public boolean disabled = false; public NBTTagCompound writeNBT(){