package joshie.harvest.npcs.render; import joshie.harvest.npcs.entity.EntityNPC; import joshie.harvest.npcs.entity.EntityNPC.Mode; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; import net.minecraft.util.EnumHandSide; public class ModelNPC extends ModelBiped { private final boolean smallArms; public ModelNPC(boolean alex) { super(0F, 0.0F, 64, 64); float modelSize = 0F; smallArms = alex; if (alex) { bipedLeftArm = new ModelRenderer(this, 32, 48); bipedLeftArm.addBox(-1.0F, -2.0F, -2.0F, 3, 12, 4, modelSize); bipedLeftArm.setRotationPoint(5.0F, 2.5F, 0.0F); bipedRightArm = new ModelRenderer(this, 40, 16); bipedRightArm.addBox(-2.0F, -2.0F, -2.0F, 3, 12, 4, modelSize); bipedRightArm.setRotationPoint(-5.0F, 2.5F, 0.0F); } else { bipedLeftArm = new ModelRenderer(this, 32, 48); bipedLeftArm.addBox(-1.0F, -2.0F, -2.0F, 4, 12, 4, modelSize); bipedLeftArm.setRotationPoint(5.0F, 2.0F, 0.0F); } } @Override public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); setAnglesBasedOnMode((EntityNPC) entity); } private void setAnglesBasedOnMode(EntityNPC npc) { Mode mode = npc.getMode(); if (mode == Mode.GIFT) { bipedRightArm.rotateAngleX = -45F; bipedLeftArm.rotateAngleX = -45F; } } @Override public void postRenderArm(float scale, EnumHandSide side) { ModelRenderer modelrenderer = this.getArmForSide(side); if (smallArms) { float f = 0.5F * (float)(side == EnumHandSide.RIGHT ? 1 : -1); modelrenderer.rotationPointX += f; modelrenderer.postRender(scale); modelrenderer.rotationPointX -= f; } else { modelrenderer.postRender(scale); } } }