From 3f31f47ab495379a37f209bedcaee1bf98ad3a9e Mon Sep 17 00:00:00 2001 From: Sekwah Date: Mon, 19 Sep 2022 02:18:20 +0100 Subject: [PATCH] fix: running animation layers not aligning --- .../narutomod/anims/PlayerAnimHandler.java | 33 ++++++++++--------- .../mixin/client/PlayerModelMixin.java | 5 +-- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/sekwah/narutomod/anims/PlayerAnimHandler.java b/src/main/java/com/sekwah/narutomod/anims/PlayerAnimHandler.java index ab67b166..abceb6ea 100644 --- a/src/main/java/com/sekwah/narutomod/anims/PlayerAnimHandler.java +++ b/src/main/java/com/sekwah/narutomod/anims/PlayerAnimHandler.java @@ -10,28 +10,31 @@ public class PlayerAnimHandler { public static void sprintingAnim(Entity entity, PlayerModel playerModel) { entity.getCapability(NinjaCapabilityHandler.NINJA_DATA).ifPresent((ninjaData -> { + if(!ninjaData.isNinjaModeEnabled()) { + return; + } var channeledAbility = ninjaData.getCurrentlyChanneledAbility(); if (channeledAbility != null && channeledAbility.equals(NarutoAbilities.CHAKRA_CHARGE.getId())) { playerModel.rightArm.setRotation(-1.375616F, -0.5948606F, 0F); playerModel.leftArm.setRotation(-1.375616F, 0.5948606F, 0F); } - })); - if(entity.isSprinting() && !entity.isVisuallySwimming()) { - playerModel.rightArm.setRotation(1.412787F, 0F, 0F); - playerModel.rightArm.setPos(-5F, 3.933333F, -3F - 2F); + if(entity.isSprinting() && !entity.isVisuallySwimming()) { + playerModel.rightArm.setRotation(1.412787F, 0F, 0F); + playerModel.rightArm.setPos(-5F, 3.933333F, -3F - 2F); - playerModel.leftArm.setRotation(1.412787F, 0F, 0F); - playerModel.leftArm.setPos(5F, 3.266667F, -3F - 2F); + playerModel.leftArm.setRotation(1.412787F, 0F, 0F); + playerModel.leftArm.setPos(5F, 3.266667F, -3F - 2F); - playerModel.head.xRot = 0F; - playerModel.head.setPos(0F, 3.133333F - 1F, -5F - 1F); + playerModel.head.xRot = 0F; + playerModel.head.setPos(0F, 3.133333F - 1F, -5F - 1F); - playerModel.body.setRotation(0.5435722F, 0F, 0F); - playerModel.body.setPos(0F, 3F - 1F, -3.5F - 2F); - } - else { - playerModel.head.setPos(0F, 0F, 0F); - playerModel.body.setPos(0F, 0F, 0F); - } + playerModel.body.setRotation(0.5435722F, 0F, 0F); + playerModel.body.setPos(0F, 3F - 1F, -3.5F - 2F); + } + else { + playerModel.head.setPos(0F, 0F, 0F); + playerModel.body.setPos(0F, 0F, 0F); + } + })); } } diff --git a/src/main/java/com/sekwah/narutomod/mixin/client/PlayerModelMixin.java b/src/main/java/com/sekwah/narutomod/mixin/client/PlayerModelMixin.java index 3d0798c7..74edc5da 100644 --- a/src/main/java/com/sekwah/narutomod/mixin/client/PlayerModelMixin.java +++ b/src/main/java/com/sekwah/narutomod/mixin/client/PlayerModelMixin.java @@ -19,8 +19,9 @@ public PlayerModelMixin(ModelPart p_170677_) { super(p_170677_, RenderType::entityTranslucent); } - @Inject(method = "setupAnim(Lnet/minecraft/world/entity/Entity;FFFFF)V", at = @At(value = "TAIL")) - public void setupAnim(Entity player, float par2, float par3, float par4, float par5, float par6, CallbackInfo ci) { + @Inject(method = "setupAnim(Lnet/minecraft/world/entity/LivingEntity;FFFFF)V", at = @At(value = "INVOKE", shift = At.Shift.AFTER, target = "Lnet/minecraft/client/model/HumanoidModel;setupAnim(Lnet/minecraft/world/entity/LivingEntity;FFFFF)V")) + public void setupAnim(T player, float par2, float par3, float par4, float par5, float par6, CallbackInfo ci) { PlayerAnimHandler.sprintingAnim(player, (PlayerModel) (Object) this); + this.hat.copyFrom(this.head); } }