diff --git a/src/main/java/com/minelittlepony/client/model/ClientPonyModel.java b/src/main/java/com/minelittlepony/client/model/ClientPonyModel.java index be88f494..d5f671b4 100644 --- a/src/main/java/com/minelittlepony/client/model/ClientPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/ClientPonyModel.java @@ -39,6 +39,11 @@ public abstract class ClientPonyModel extends MsonPlayer attributes.updateLivingState(entity, pony, mode); } + @Override + public void copyAttributes(BipedEntityModel other) { + setAttributes(other); + } + @Override public ModelAttributes getAttributes() { return attributes; diff --git a/src/main/java/com/minelittlepony/client/model/IPonyMixinModel.java b/src/main/java/com/minelittlepony/client/model/IPonyMixinModel.java index b77545e4..7a081055 100644 --- a/src/main/java/com/minelittlepony/client/model/IPonyMixinModel.java +++ b/src/main/java/com/minelittlepony/client/model/IPonyMixinModel.java @@ -1,6 +1,7 @@ package com.minelittlepony.client.model; import net.minecraft.client.model.ModelPart; +import net.minecraft.client.render.entity.model.BipedEntityModel; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.LivingEntity; import net.minecraft.util.Arm; @@ -33,6 +34,11 @@ public interface IPonyMixinModel mixin().updateLivingState(entity, pony, mode); } + @Override + default void copyAttributes(BipedEntityModel other) { + mixin().copyAttributes(other); + } + @Override default void transform(BodyPart part, MatrixStack stack) { mixin().transform(part, stack); diff --git a/src/main/java/com/minelittlepony/client/model/IPonyModel.java b/src/main/java/com/minelittlepony/client/model/IPonyModel.java index 46cfabd1..36edeef1 100644 --- a/src/main/java/com/minelittlepony/client/model/IPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/IPonyModel.java @@ -1,6 +1,7 @@ package com.minelittlepony.client.model; import net.minecraft.client.model.ModelPart; +import net.minecraft.client.render.entity.model.BipedEntityModel; import net.minecraft.entity.LivingEntity; import com.minelittlepony.client.render.EquineRenderManager; @@ -13,6 +14,8 @@ import com.minelittlepony.pony.IPony; public interface IPonyModel extends PonyModelConstants, IModel, ICapitated, ICompartmented, MsonModel { + void copyAttributes(BipedEntityModel other); + void updateLivingState(T entity, IPony pony, EquineRenderManager.Mode mode); @Override diff --git a/src/main/java/com/minelittlepony/client/render/entity/feature/ArmourFeature.java b/src/main/java/com/minelittlepony/client/render/entity/feature/ArmourFeature.java index fd118efc..d58fe96c 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/feature/ArmourFeature.java +++ b/src/main/java/com/minelittlepony/client/render/entity/feature/ArmourFeature.java @@ -58,7 +58,7 @@ public class ArmourFeature & IP V armour = ArmourFeature.getArmorModel(entity, itemstack, armorSlot, layer, pony.getArmor().getArmorForLayer(layer)); if (armour.prepareToRender(armorSlot, layer)) { - ((BipedEntityModel)pony.getBody()).setAttributes(armour); + pony.getBody().copyAttributes(armour); armour.setAngles(entity, limbAngle, limbDistance, age, headYaw, headPitch); armour.synchroniseLegs(pony.getBody());