@Override public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor, Entity entityIn) { super.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scaleFactor, entityIn); this.leftArm.setRotationPoint(4, 3, -1); this.rightArm.setRotationPoint(-4, 3, -1); this.leftArm.rotateAngleX = -0.75F; this.rightArm.rotateAngleX = -0.75F; if (this.swingProgress > 0.0F) { EnumHandSide enumhandside = this.getMainHand(entityIn); ModelRenderer modelrenderer = this.getArmForSide(enumhandside); this.getArmForSide(enumhandside.opposite()); float f1; f1 = 1.0F - this.swingProgress; f1 = f1 * f1; f1 = f1 * f1; f1 = 1.0F - f1; float f2 = MathHelper.sin(f1 * (float) Math.PI); float f3 = MathHelper.sin(this.swingProgress * (float) Math.PI) * -(this.villagerHead.rotateAngleX - 0.7F) * 0.75F; modelrenderer.rotateAngleX = (float) ((double) modelrenderer.rotateAngleX - ((double) f2 * 1.2D + (double) f3)); } }