diff --git a/src/main/java/com/minelittlepony/client/model/entity/PiglinPonyModel.java b/src/main/java/com/minelittlepony/client/model/entity/PiglinPonyModel.java index 909b9121..4e67fa30 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/PiglinPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/entity/PiglinPonyModel.java @@ -2,40 +2,59 @@ package com.minelittlepony.client.model.entity; import net.minecraft.entity.mob.HostileEntity; import net.minecraft.entity.mob.PiglinEntity; +import net.minecraft.util.math.MathHelper; -import com.minelittlepony.client.model.entity.race.AlicornModel; +import com.minelittlepony.client.render.EquineRenderManager; +import com.minelittlepony.pony.IPony; -public class PiglinPonyModel extends AlicornModel { +public class PiglinPonyModel extends ZomponyModel { - private boolean isPegasus; - - public PiglinPonyModel() { - super(false); - } + private PiglinEntity.Activity activity; @Override - public void animateModel(HostileEntity entity, float move, float swing, float ticks) { - isPegasus = entity.getUuid().getLeastSignificantBits() % 30 == 0; + public void updateLivingState(HostileEntity entity, IPony pony, EquineRenderManager.Mode mode) { + super.updateLivingState(entity, pony, mode); + leftArmPose = ArmPose.EMPTY; + rightArmPose = entity.getMainHandStack().isEmpty() ? ArmPose.EMPTY : ArmPose.ITEM; if (entity instanceof PiglinEntity) { PiglinEntity piglinEntity = (PiglinEntity)entity; - PiglinEntity.Activity activity = piglinEntity.getActivity(); - - leftArmPose = ArmPose.EMPTY; - rightArmPose = ArmPose.EMPTY; + activity = piglinEntity.getActivity(); if (activity == PiglinEntity.Activity.CROSSBOW_HOLD) { rightArmPose = ArmPose.CROSSBOW_HOLD; } else if (activity == PiglinEntity.Activity.CROSSBOW_CHARGE) { - rightArmPose = ArmPose.BOW_AND_ARROW; + rightArmPose = ArmPose.CROSSBOW_CHARGE; } else if (activity == PiglinEntity.Activity.ADMIRING_ITEM) { - leftArmPose = ArmPose.ITEM; + leftArmPose = ArmPose.ITEM; } - } + } else { + activity = PiglinEntity.Activity.DEFAULT; + } } @Override - public boolean canFly() { - return isPegasus; + public void setAngles(HostileEntity entity, float move, float swing, float ticks, float headYaw, float headPitch) { + super.setAngles(entity, move, swing, ticks, headYaw, headPitch); + + if (activity == PiglinEntity.Activity.ADMIRING_ITEM) { + leftArm.yaw = 0.5F; + leftArm.pitch = -1.9F; + leftArm.pivotY += 4; + leftArm.pivotZ += 3; + leftArm.pivotX += 2; + head.pitch = MathHelper.sin(ticks / 12) / 6 + 0.5F; + head.yaw = 0; + + head.roll = MathHelper.sin(ticks / 10) / 3F; + + + helmet.copyPositionAndRotation(head); + } + } + + @Override + protected boolean isZombified(HostileEntity entity) { + return !(entity instanceof PiglinEntity); } } diff --git a/src/main/java/com/minelittlepony/client/model/entity/ZomponyModel.java b/src/main/java/com/minelittlepony/client/model/entity/ZomponyModel.java index 817eac9a..a6cf6e51 100644 --- a/src/main/java/com/minelittlepony/client/model/entity/ZomponyModel.java +++ b/src/main/java/com/minelittlepony/client/model/entity/ZomponyModel.java @@ -17,6 +17,7 @@ public class ZomponyModel extends AlicornModel extends AlicornModel extends AlicornModel