From fd3a9cc4bc1348a2e47ff546414179c72260f476 Mon Sep 17 00:00:00 2001 From: luisc Date: Mon, 26 Feb 2024 17:33:16 -0600 Subject: [PATCH] Changed player animation mixin to mixin setLivingAnimations() in the model base class instead. Makes animations be one-to-one between players and NPCs. --- .../npcs/mixin/CustomNPCsMixinPlugin.java | 2 +- ...nRenderPlayer.java => MixinModelBase.java} | 20 +++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) rename src/main/java/noppes/npcs/mixin/{MixinRenderPlayer.java => MixinModelBase.java} (66%) diff --git a/src/main/java/noppes/npcs/mixin/CustomNPCsMixinPlugin.java b/src/main/java/noppes/npcs/mixin/CustomNPCsMixinPlugin.java index 04d31fac2..77554d921 100644 --- a/src/main/java/noppes/npcs/mixin/CustomNPCsMixinPlugin.java +++ b/src/main/java/noppes/npcs/mixin/CustomNPCsMixinPlugin.java @@ -49,7 +49,7 @@ public class CustomNPCsMixinPlugin implements IMixinConfigPlugin { } if (ConfigMixin.AnimationMixin) { mixins.add("MixinModelRenderer"); - mixins.add("MixinRenderPlayer"); + mixins.add("MixinModelBase"); } if (ConfigMixin.FirstPersonAnimationMixin) { mixins.add("MixinItemRenderer"); diff --git a/src/main/java/noppes/npcs/mixin/MixinRenderPlayer.java b/src/main/java/noppes/npcs/mixin/MixinModelBase.java similarity index 66% rename from src/main/java/noppes/npcs/mixin/MixinRenderPlayer.java rename to src/main/java/noppes/npcs/mixin/MixinModelBase.java index 440743817..6d8dda17c 100644 --- a/src/main/java/noppes/npcs/mixin/MixinRenderPlayer.java +++ b/src/main/java/noppes/npcs/mixin/MixinModelBase.java @@ -2,8 +2,8 @@ package noppes.npcs.mixin; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.entity.AbstractClientPlayer; -import net.minecraft.client.renderer.entity.RenderPlayer; +import net.minecraft.client.model.ModelBase; +import net.minecraft.entity.EntityLivingBase; import noppes.npcs.client.ClientCacheHandler; import noppes.npcs.constants.EnumAnimationPart; import noppes.npcs.controllers.data.AnimationData; @@ -15,15 +15,15 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -@Mixin(value = RenderPlayer.class) -public abstract class MixinRenderPlayer { +@Mixin(value = ModelBase.class) +public abstract class MixinModelBase { @SideOnly(Side.CLIENT) - @Inject(method = "rotateCorpse*", at = @At(value = "TAIL")) - protected void modelDataRotations(AbstractClientPlayer p_77043_1_, float p_77043_2_, float p_77043_3_, float p_77043_4_, CallbackInfo callbackInfo) + @Inject(method = "setLivingAnimations", at = @At(value = "TAIL")) + public void setLivingAnimations(EntityLivingBase p_78086_1_, float p_78086_2_, float p_78086_3_, float p_78086_4_, CallbackInfo callbackInfo) { - if (ClientCacheHandler.playerAnimations.containsKey(p_77043_1_.getUniqueID())) { - AnimationData animData = ClientCacheHandler.playerAnimations.get(p_77043_1_.getUniqueID()); + if (ClientCacheHandler.playerAnimations.containsKey(p_78086_1_.getUniqueID())) { + AnimationData animData = ClientCacheHandler.playerAnimations.get(p_78086_1_.getUniqueID()); if (animData != null && animData.isActive()) { Frame frame = (Frame) animData.animation.currentFrame(); if (frame.frameParts.containsKey(EnumAnimationPart.FULL_MODEL)) { @@ -32,8 +32,8 @@ public abstract class MixinRenderPlayer { part.interpolateAngles(); float pi = 180 / (float) Math.PI; GL11.glTranslatef(part.prevPivots[0], part.prevPivots[1], part.prevPivots[2]); - GL11.glRotatef(-part.prevRotations[0] * pi, 1, 0, 0); - GL11.glRotatef(-part.prevRotations[1] * pi, 0, 1, 0); + GL11.glRotatef(part.prevRotations[0] * pi, 1, 0, 0); + GL11.glRotatef(part.prevRotations[1] * pi, 0, 1, 0); GL11.glRotatef(part.prevRotations[2] * pi, 0, 0, 1); } }