package com.minelittlepony.model.ponies; import com.minelittlepony.model.player.ModelAlicorn; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; import net.minecraft.entity.monster.AbstractIllager; import net.minecraft.entity.monster.AbstractIllager.IllagerArmPose; import net.minecraft.util.EnumHandSide; import net.minecraft.util.math.MathHelper; public class ModelIllagerPony extends ModelAlicorn { public ModelIllagerPony() { super(false); } @Override public void setRotationAngles(float move, float swing, float ticks, float headYaw, float headPitch, float scale, Entity entity) { super.setRotationAngles(move, swing, ticks, headYaw, headPitch, scale, entity); AbstractIllager illager = (AbstractIllager) entity; IllagerArmPose pose = illager.getArmPose(); boolean rightHanded = illager.getPrimaryHand() == EnumHandSide.RIGHT; float mult = rightHanded ? 1 : -1; ModelRenderer arm = getArm(illager.getPrimaryHand()); if (pose == IllagerArmPose.ATTACKING) { // vindicator attacking float f = MathHelper.sin(swingProgress * (float) Math.PI); float f1 = MathHelper.sin((1.0F - (1.0F - swingProgress) * (1.0F - swingProgress)) * (float) Math.PI); float cos = MathHelper.cos(ticks * 0.09F) * 0.05F + 0.05F; float sin = MathHelper.sin(ticks * 0.067F) * 0.05F; bipedRightArm.rotateAngleZ = cos; bipedLeftArm.rotateAngleZ = cos; bipedRightArm.rotateAngleY = 0.15707964F; bipedLeftArm.rotateAngleY = -0.15707964F; arm.rotateAngleX = -1.8849558F + MathHelper.cos(ticks * 0.09F) * 0.15F; arm.rotateAngleX += f * 2.2F - f1 * 0.4F; bipedRightArm.rotateAngleX += sin; bipedLeftArm.rotateAngleX -= sin; } else if (pose == IllagerArmPose.SPELLCASTING) { // waving arms! // this.bipedRightArm.rotationPointZ = 0; arm.rotateAngleX = (float) (-.75F * Math.PI); arm.rotateAngleZ = mult * MathHelper.cos(ticks * 0.6662F) / 4; arm.rotateAngleY = mult * 1.1F; } else if (pose == IllagerArmPose.BOW_AND_ARROW) { aimBow(arm, ticks); } } public ModelRenderer getArm(EnumHandSide side) { return canCast() ? getUnicornArmForSide(side) : getArmForSide(side); } }