Example #1
0
        /**
         * Used for easily adding entity-dependent animations. The second and third float params here are the same second
         * and third as in the setRotationAngles method.
         */
        public void setLivingAnimations(EntityLivingBase entitylivingbaseIn, float p_78086_2_, float p_78086_3_, float partialTickTime)
        {
            EntityIronGolem entityirongolem = (EntityIronGolem)entitylivingbaseIn;
            int             i = entityirongolem.getAttackTimer();

            if (i > 0)
            {
                this.ironGolemRightArm.rotateAngleX = -2.0F + 1.5F * this.func_78172_a((float)i - partialTickTime, 10.0F);
                this.ironGolemLeftArm.rotateAngleX  = -2.0F + 1.5F * this.func_78172_a((float)i - partialTickTime, 10.0F);
            }
            else
            {
                int j = entityirongolem.getHoldRoseTick();

                if (j > 0)
                {
                    this.ironGolemRightArm.rotateAngleX = -0.8F + 0.025F * this.func_78172_a((float)j, 70.0F);
                    this.ironGolemLeftArm.rotateAngleX  = 0.0F;
                }
                else
                {
                    this.ironGolemRightArm.rotateAngleX = (-0.2F + 1.5F * this.func_78172_a(p_78086_2_, 13.0F)) * p_78086_3_;
                    this.ironGolemLeftArm.rotateAngleX  = (-0.2F - 1.5F * this.func_78172_a(p_78086_2_, 13.0F)) * p_78086_3_;
                }
            }
        }
Example #2
0
        /**
         * Used for easily adding entity-dependent animations. The second and third float params here are the same second
         * and third as in the setRotationAngles method.
         */
        public override void setLivingAnimations(EntityLivingBase entitylivingbaseIn, float p_78086_2_, float p_78086_3_, float partialTickTime)
        {
            EntityWither entitywither = (EntityWither)entitylivingbaseIn;

            for (int i = 1; i < 3; ++i)
            {
                this.field_82904_b[i].rotateAngleY = (entitywither.func_82207_a(i - 1) - entitylivingbaseIn.renderYawOffset) * 0.017453292F;
                this.field_82904_b[i].rotateAngleX = entitywither.func_82210_r(i - 1) * 0.017453292F;
            }
        }
Example #3
0
        /**
         * Used for easily adding entity-dependent animations. The second and third float params here are the same second
         * and third as in the setRotationAngles method.
         */
        public void setLivingAnimations(EntityLivingBase entitylivingbaseIn, float p_78086_2_, float p_78086_3_, float partialTickTime)
        {
            EntityWolf entitywolf = (EntityWolf)entitylivingbaseIn;

            if (entitywolf.isAngry())
            {
                this.wolfTail.rotateAngleY = 0.0F;
            }
            else
            {
                this.wolfTail.rotateAngleY = MathHelper.cos(p_78086_2_ * 0.6662F) * 1.4F * p_78086_3_;
            }

            if (entitywolf.isSitting())
            {
                this.wolfMane.setRotationPoint(-1.0F, 16.0F, -3.0F);
                this.wolfMane.rotateAngleX = ((float)Math.PI * 2F / 5F);
                this.wolfMane.rotateAngleY = 0.0F;
                this.wolfBody.setRotationPoint(0.0F, 18.0F, 0.0F);
                this.wolfBody.rotateAngleX = ((float)Math.PI / 4F);
                this.wolfTail.setRotationPoint(-1.0F, 21.0F, 6.0F);
                this.wolfLeg1.setRotationPoint(-2.5F, 22.0F, 2.0F);
                this.wolfLeg1.rotateAngleX = ((float)Math.PI * 3F / 2F);
                this.wolfLeg2.setRotationPoint(0.5F, 22.0F, 2.0F);
                this.wolfLeg2.rotateAngleX = ((float)Math.PI * 3F / 2F);
                this.wolfLeg3.rotateAngleX = 5.811947F;
                this.wolfLeg3.setRotationPoint(-2.49F, 17.0F, -4.0F);
                this.wolfLeg4.rotateAngleX = 5.811947F;
                this.wolfLeg4.setRotationPoint(0.51F, 17.0F, -4.0F);
            }
            else
            {
                this.wolfBody.setRotationPoint(0.0F, 14.0F, 2.0F);
                this.wolfBody.rotateAngleX = ((float)Math.PI / 2F);
                this.wolfMane.setRotationPoint(-1.0F, 14.0F, -3.0F);
                this.wolfMane.rotateAngleX = this.wolfBody.rotateAngleX;
                this.wolfTail.setRotationPoint(-1.0F, 12.0F, 8.0F);
                this.wolfLeg1.setRotationPoint(-2.5F, 16.0F, 7.0F);
                this.wolfLeg2.setRotationPoint(0.5F, 16.0F, 7.0F);
                this.wolfLeg3.setRotationPoint(-2.5F, 16.0F, -4.0F);
                this.wolfLeg4.setRotationPoint(0.5F, 16.0F, -4.0F);
                this.wolfLeg1.rotateAngleX = MathHelper.cos(p_78086_2_ * 0.6662F) * 1.4F * p_78086_3_;
                this.wolfLeg2.rotateAngleX = MathHelper.cos(p_78086_2_ * 0.6662F + (float)Math.PI) * 1.4F * p_78086_3_;
                this.wolfLeg3.rotateAngleX = MathHelper.cos(p_78086_2_ * 0.6662F + (float)Math.PI) * 1.4F * p_78086_3_;
                this.wolfLeg4.rotateAngleX = MathHelper.cos(p_78086_2_ * 0.6662F) * 1.4F * p_78086_3_;
            }

            this.wolfHeadMain.rotateAngleZ = entitywolf.getInterestedAngle(partialTickTime) + entitywolf.getShakeAngle(partialTickTime, 0.0F);
            this.wolfMane.rotateAngleZ     = entitywolf.getShakeAngle(partialTickTime, -0.08F);
            this.wolfBody.rotateAngleZ     = entitywolf.getShakeAngle(partialTickTime, -0.16F);
            this.wolfTail.rotateAngleZ     = entitywolf.getShakeAngle(partialTickTime, -0.2F);
        }
Example #4
0
        /**
         * Used for easily adding entity-dependent animations. The second and third float params here are the same second
         * and third as in the setRotationAngles method.
         */
        public void setLivingAnimations(EntityLivingBase entitylivingbaseIn, float p_78086_2_, float p_78086_3_, float partialTickTime)
        {
            EntityMagmaCube entitymagmacube = (EntityMagmaCube)entitylivingbaseIn;
            float           f = entitymagmacube.prevSquishFactor + (entitymagmacube.squishFactor - entitymagmacube.prevSquishFactor) * partialTickTime;

            if (f < 0.0F)
            {
                f = 0.0F;
            }

            for (int i = 0; i < this.segments.Length; ++i)
            {
                this.segments[i].rotationPointY = (float)(-(4 - i)) * f * 1.7F;
            }
        }
Example #5
0
        /**
         * Used for easily adding entity-dependent animations. The second and third float params here are the same second
         * and third as in the setRotationAngles method.
         */
        public void setLivingAnimations(EntityLivingBase entitylivingbaseIn, float p_78086_2_, float p_78086_3_, float partialTickTime)
        {
            this.rightArmPose = ModelBiped.ArmPose.EMPTY;
            this.leftArmPose  = ModelBiped.ArmPose.EMPTY;
            ItemStack itemstack = entitylivingbaseIn.getHeldItem(EnumHand.MAIN_HAND);

            if (itemstack != null && itemstack.getItem() == Items.bow && ((EntitySkeleton)entitylivingbaseIn).func_184725_db())
            {
                if (entitylivingbaseIn.getPrimaryHand() == EnumHandSide.RIGHT)
                {
                    this.rightArmPose = ModelBiped.ArmPose.BOW_AND_ARROW;
                }
                else
                {
                    this.leftArmPose = ModelBiped.ArmPose.BOW_AND_ARROW;
                }
            }

            super.setLivingAnimations(entitylivingbaseIn, p_78086_2_, p_78086_3_, partialTickTime);
        }
Example #6
0
 /**
  * Used for easily adding entity-dependent animations. The second and third float params here are the same second
  * and third as in the setRotationAngles method.
  */
 public void setLivingAnimations(EntityLivingBase entitylivingbaseIn, float p_78086_2_, float p_78086_3_, float partialTickTime)
 {
     base.setLivingAnimations(entitylivingbaseIn, p_78086_2_, p_78086_3_, partialTickTime);
     this.head.rotationPointY = 6.0F + ((EntitySheep)entitylivingbaseIn).getHeadRotationPointY(partialTickTime) * 9.0F;
     this.headRotationAngleX  = ((EntitySheep)entitylivingbaseIn).getHeadRotationAngleX(partialTickTime);
 }
Example #7
0
 /**
  * Used for easily adding entity-dependent animations. The second and third float params here are the same second
  * and third as in the setRotationAngles method.
  */
 public void setLivingAnimations(EntityLivingBase entitylivingbaseIn, float p_78086_2_, float p_78086_3_, float partialTickTime)
 {
     super.setLivingAnimations(entitylivingbaseIn, p_78086_2_, p_78086_3_, partialTickTime);
     this.field_178701_m = MathHelper.sin(((EntityRabbit)entitylivingbaseIn).func_175521_o(partialTickTime) * (float)Math.PI);
 }
Example #8
0
        /**
         * Used for easily adding entity-dependent animations. The second and third float params here are the same second
         * and third as in the setRotationAngles method.
         */
        public void setLivingAnimations(EntityLivingBase entitylivingbaseIn, float p_78086_2_, float p_78086_3_, float partialTickTime)
        {
            EntityOcelot entityocelot = (EntityOcelot)entitylivingbaseIn;

            this.ocelotBody.rotationPointY         = 12.0F;
            this.ocelotBody.rotationPointZ         = -10.0F;
            this.ocelotHead.rotationPointY         = 15.0F;
            this.ocelotHead.rotationPointZ         = -9.0F;
            this.ocelotTail.rotationPointY         = 15.0F;
            this.ocelotTail.rotationPointZ         = 8.0F;
            this.ocelotTail2.rotationPointY        = 20.0F;
            this.ocelotTail2.rotationPointZ        = 14.0F;
            this.ocelotFrontLeftLeg.rotationPointY = this.ocelotFrontRightLeg.rotationPointY = 13.8F;
            this.ocelotFrontLeftLeg.rotationPointZ = this.ocelotFrontRightLeg.rotationPointZ = -5.0F;
            this.ocelotBackLeftLeg.rotationPointY  = this.ocelotBackRightLeg.rotationPointY = 18.0F;
            this.ocelotBackLeftLeg.rotationPointZ  = this.ocelotBackRightLeg.rotationPointZ = 5.0F;
            this.ocelotTail.rotateAngleX           = 0.9F;

            if (entityocelot.isSneaking())
            {
                ++this.ocelotBody.rotationPointY;
                this.ocelotHead.rotationPointY += 2.0F;
                ++this.ocelotTail.rotationPointY;
                this.ocelotTail2.rotationPointY += -4.0F;
                this.ocelotTail2.rotationPointZ += 2.0F;
                this.ocelotTail.rotateAngleX     = ((float)Math.PI / 2F);
                this.ocelotTail2.rotateAngleX    = ((float)Math.PI / 2F);
                this.field_78163_i = 0;
            }
            else if (entityocelot.isSprinting())
            {
                this.ocelotTail2.rotationPointY  = this.ocelotTail.rotationPointY;
                this.ocelotTail2.rotationPointZ += 2.0F;
                this.ocelotTail.rotateAngleX     = ((float)Math.PI / 2F);
                this.ocelotTail2.rotateAngleX    = ((float)Math.PI / 2F);
                this.field_78163_i = 2;
            }
            else if (entityocelot.isSitting())
            {
                this.ocelotBody.rotateAngleX    = ((float)Math.PI / 4F);
                this.ocelotBody.rotationPointY += -4.0F;
                this.ocelotBody.rotationPointZ += 5.0F;
                this.ocelotHead.rotationPointY += -3.3F;
                ++this.ocelotHead.rotationPointZ;
                this.ocelotTail.rotationPointY        += 8.0F;
                this.ocelotTail.rotationPointZ        += -2.0F;
                this.ocelotTail2.rotationPointY       += 2.0F;
                this.ocelotTail2.rotationPointZ       += -0.8F;
                this.ocelotTail.rotateAngleX           = 1.7278761F;
                this.ocelotTail2.rotateAngleX          = 2.670354F;
                this.ocelotFrontLeftLeg.rotateAngleX   = this.ocelotFrontRightLeg.rotateAngleX = -0.15707964F;
                this.ocelotFrontLeftLeg.rotationPointY = this.ocelotFrontRightLeg.rotationPointY = 15.8F;
                this.ocelotFrontLeftLeg.rotationPointZ = this.ocelotFrontRightLeg.rotationPointZ = -7.0F;
                this.ocelotBackLeftLeg.rotateAngleX    = this.ocelotBackRightLeg.rotateAngleX = -((float)Math.PI / 2F);
                this.ocelotBackLeftLeg.rotationPointY  = this.ocelotBackRightLeg.rotationPointY = 21.0F;
                this.ocelotBackLeftLeg.rotationPointZ  = this.ocelotBackRightLeg.rotationPointZ = 1.0F;
                this.field_78163_i = 3;
            }
            else
            {
                this.field_78163_i = 1;
            }
        }
Example #9
0
 /**
  * Used for easily adding entity-dependent animations. The second and third float params here are the same second
  * and third as in the setRotationAngles method.
  */
 public void setLivingAnimations(EntityLivingBase entitylivingbaseIn, float p_78086_2_, float p_78086_3_, float partialTickTime)
 {
     this.partialTicks = partialTickTime;
 }
Example #10
0
        /**
         * Used for easily adding entity-dependent animations. The second and third float params here are the same second
         * and third as in the setRotationAngles method.
         */
        public void setLivingAnimations(EntityLivingBase entitylivingbaseIn, float p_78086_2_, float p_78086_3_, float partialTickTime)
        {
            float f  = this.updateHorseRotation(entitylivingbaseIn.prevRenderYawOffset, entitylivingbaseIn.renderYawOffset, partialTickTime);
            float f1 = this.updateHorseRotation(entitylivingbaseIn.prevRotationYawHead, entitylivingbaseIn.rotationYawHead, partialTickTime);
            float f2 = entitylivingbaseIn.prevRotationPitch + (entitylivingbaseIn.rotationPitch - entitylivingbaseIn.prevRotationPitch) * partialTickTime;
            float f3 = f1 - f;
            float f4 = f2 * 0.017453292F;

            if (f3 > 20.0F)
            {
                f3 = 20.0F;
            }

            if (f3 < -20.0F)
            {
                f3 = -20.0F;
            }

            if (p_78086_3_ > 0.2F)
            {
                f4 += MathHelper.cos(p_78086_2_ * 0.4F) * 0.15F * p_78086_3_;
            }

            EntityHorse entityhorse = (EntityHorse)entitylivingbaseIn;
            float       f5          = entityhorse.getGrassEatingAmount(partialTickTime);
            float       f6          = entityhorse.getRearingAmount(partialTickTime);
            float       f7          = 1.0F - f6;
            float       f8          = entityhorse.getMouthOpennessAngle(partialTickTime);
            boolean     flag        = entityhorse.field_110278_bp != 0;
            boolean     flag1       = entityhorse.isHorseSaddled();
            boolean     flag2       = entityhorse.isBeingRidden();
            float       f9          = (float)entitylivingbaseIn.ticksExisted + partialTickTime;
            float       f10         = MathHelper.cos(p_78086_2_ * 0.6662F + (float)Math.PI);
            float       f11         = f10 * 0.8F * p_78086_3_;

            this.head.rotationPointY           = 4.0F;
            this.head.rotationPointZ           = -10.0F;
            this.tailBase.rotationPointY       = 3.0F;
            this.tailMiddle.rotationPointZ     = 14.0F;
            this.muleRightChest.rotationPointY = 3.0F;
            this.muleRightChest.rotationPointZ = 10.0F;
            this.body.rotateAngleX             = 0.0F;
            this.head.rotateAngleX             = 0.5235988F + f4;
            this.head.rotateAngleY             = f3 * 0.017453292F;
            this.head.rotateAngleX             = f6 * (0.2617994F + f4) + f5 * 2.18166F + (1.0F - Math.max(f6, f5)) * this.head.rotateAngleX;
            this.head.rotateAngleY             = f6 * f3 * 0.017453292F + (1.0F - Math.max(f6, f5)) * this.head.rotateAngleY;
            this.head.rotationPointY           = f6 * -6.0F + f5 * 11.0F + (1.0F - Math.max(f6, f5)) * this.head.rotationPointY;
            this.head.rotationPointZ           = f6 * -1.0F + f5 * -10.0F + (1.0F - Math.max(f6, f5)) * this.head.rotationPointZ;
            this.tailBase.rotationPointY       = f6 * 9.0F + f7 * this.tailBase.rotationPointY;
            this.tailMiddle.rotationPointZ     = f6 * 18.0F + f7 * this.tailMiddle.rotationPointZ;
            this.muleRightChest.rotationPointY = f6 * 5.5F + f7 * this.muleRightChest.rotationPointY;
            this.muleRightChest.rotationPointZ = f6 * 15.0F + f7 * this.muleRightChest.rotationPointZ;
            this.body.rotateAngleX             = f6 * -45.0F * 0.017453292F + f7 * this.body.rotateAngleX;
            this.horseLeftEar.rotationPointY   = this.head.rotationPointY;
            this.horseRightEar.rotationPointY  = this.head.rotationPointY;
            this.muleLeftEar.rotationPointY    = this.head.rotationPointY;
            this.muleRightEar.rotationPointY   = this.head.rotationPointY;
            this.neck.rotationPointY           = this.head.rotationPointY;
            this.field_178711_b.rotationPointY = 0.02F;
            this.field_178712_c.rotationPointY = 0.0F;
            this.mane.rotationPointY           = this.head.rotationPointY;
            this.horseLeftEar.rotationPointZ   = this.head.rotationPointZ;
            this.horseRightEar.rotationPointZ  = this.head.rotationPointZ;
            this.muleLeftEar.rotationPointZ    = this.head.rotationPointZ;
            this.muleRightEar.rotationPointZ   = this.head.rotationPointZ;
            this.neck.rotationPointZ           = this.head.rotationPointZ;
            this.field_178711_b.rotationPointZ = 0.02F - f8;
            this.field_178712_c.rotationPointZ = f8;
            this.mane.rotationPointZ           = this.head.rotationPointZ;
            this.horseLeftEar.rotateAngleX     = this.head.rotateAngleX;
            this.horseRightEar.rotateAngleX    = this.head.rotateAngleX;
            this.muleLeftEar.rotateAngleX      = this.head.rotateAngleX;
            this.muleRightEar.rotateAngleX     = this.head.rotateAngleX;
            this.neck.rotateAngleX             = this.head.rotateAngleX;
            this.field_178711_b.rotateAngleX   = -0.09424778F * f8;
            this.field_178712_c.rotateAngleX   = 0.15707964F * f8;
            this.mane.rotateAngleX             = this.head.rotateAngleX;
            this.horseLeftEar.rotateAngleY     = this.head.rotateAngleY;
            this.horseRightEar.rotateAngleY    = this.head.rotateAngleY;
            this.muleLeftEar.rotateAngleY      = this.head.rotateAngleY;
            this.muleRightEar.rotateAngleY     = this.head.rotateAngleY;
            this.neck.rotateAngleY             = this.head.rotateAngleY;
            this.field_178711_b.rotateAngleY   = 0.0F;
            this.field_178712_c.rotateAngleY   = 0.0F;
            this.mane.rotateAngleY             = this.head.rotateAngleY;
            this.muleLeftChest.rotateAngleX    = f11 / 5.0F;
            this.muleRightChest.rotateAngleX   = -f11 / 5.0F;
            float f12 = ((float)Math.PI / 2F);
            float f13 = ((float)Math.PI * 3F / 2F);
            float f14 = -1.0471976F;
            float f15 = 0.2617994F * f6;
            float f16 = MathHelper.cos(f9 * 0.6F + (float)Math.PI);

            this.frontLeftLeg.rotationPointY  = -2.0F * f6 + 9.0F * f7;
            this.frontLeftLeg.rotationPointZ  = -2.0F * f6 + -8.0F * f7;
            this.frontRightLeg.rotationPointY = this.frontLeftLeg.rotationPointY;
            this.frontRightLeg.rotationPointZ = this.frontLeftLeg.rotationPointZ;
            this.backLeftShin.rotationPointY  = this.backLeftLeg.rotationPointY + MathHelper.sin(((float)Math.PI / 2F) + f15 + f7 * -f10 * 0.5F * p_78086_3_) * 7.0F;
            this.backLeftShin.rotationPointZ  = this.backLeftLeg.rotationPointZ + MathHelper.cos(((float)Math.PI * 3F / 2F) + f15 + f7 * -f10 * 0.5F * p_78086_3_) * 7.0F;
            this.backRightShin.rotationPointY = this.backRightLeg.rotationPointY + MathHelper.sin(((float)Math.PI / 2F) + f15 + f7 * f10 * 0.5F * p_78086_3_) * 7.0F;
            this.backRightShin.rotationPointZ = this.backRightLeg.rotationPointZ + MathHelper.cos(((float)Math.PI * 3F / 2F) + f15 + f7 * f10 * 0.5F * p_78086_3_) * 7.0F;
            float f17 = (-1.0471976F + f16) * f6 + f11 * f7;
            float f18 = (-1.0471976F + -f16) * f6 + -f11 * f7;

            this.frontLeftShin.rotationPointY  = this.frontLeftLeg.rotationPointY + MathHelper.sin(((float)Math.PI / 2F) + f17) * 7.0F;
            this.frontLeftShin.rotationPointZ  = this.frontLeftLeg.rotationPointZ + MathHelper.cos(((float)Math.PI * 3F / 2F) + f17) * 7.0F;
            this.frontRightShin.rotationPointY = this.frontRightLeg.rotationPointY + MathHelper.sin(((float)Math.PI / 2F) + f18) * 7.0F;
            this.frontRightShin.rotationPointZ = this.frontRightLeg.rotationPointZ + MathHelper.cos(((float)Math.PI * 3F / 2F) + f18) * 7.0F;
            this.backLeftLeg.rotateAngleX      = f15 + -f10 * 0.5F * p_78086_3_ * f7;
            this.backLeftShin.rotateAngleX     = -0.08726646F * f6 + (-f10 * 0.5F * p_78086_3_ - Math.max(0.0F, f10 * 0.5F * p_78086_3_)) * f7;
            this.backLeftHoof.rotateAngleX     = this.backLeftShin.rotateAngleX;
            this.backRightLeg.rotateAngleX     = f15 + f10 * 0.5F * p_78086_3_ * f7;
            this.backRightShin.rotateAngleX    = -0.08726646F * f6 + (f10 * 0.5F * p_78086_3_ - Math.max(0.0F, -f10 * 0.5F * p_78086_3_)) * f7;
            this.backRightHoof.rotateAngleX    = this.backRightShin.rotateAngleX;
            this.frontLeftLeg.rotateAngleX     = f17;
            this.frontLeftShin.rotateAngleX    = (this.frontLeftLeg.rotateAngleX + (float)Math.PI * Math.max(0.0F, 0.2F + f16 * 0.2F)) * f6 + (f11 + Math.max(0.0F, f10 * 0.5F * p_78086_3_)) * f7;
            this.frontLeftHoof.rotateAngleX    = this.frontLeftShin.rotateAngleX;
            this.frontRightLeg.rotateAngleX    = f18;
            this.frontRightShin.rotateAngleX   = (this.frontRightLeg.rotateAngleX + (float)Math.PI * Math.max(0.0F, 0.2F - f16 * 0.2F)) * f6 + (-f11 + Math.max(0.0F, -f10 * 0.5F * p_78086_3_)) * f7;
            this.frontRightHoof.rotateAngleX   = this.frontRightShin.rotateAngleX;
            this.backLeftHoof.rotationPointY   = this.backLeftShin.rotationPointY;
            this.backLeftHoof.rotationPointZ   = this.backLeftShin.rotationPointZ;
            this.backRightHoof.rotationPointY  = this.backRightShin.rotationPointY;
            this.backRightHoof.rotationPointZ  = this.backRightShin.rotationPointZ;
            this.frontLeftHoof.rotationPointY  = this.frontLeftShin.rotationPointY;
            this.frontLeftHoof.rotationPointZ  = this.frontLeftShin.rotationPointZ;
            this.frontRightHoof.rotationPointY = this.frontRightShin.rotationPointY;
            this.frontRightHoof.rotationPointZ = this.frontRightShin.rotationPointZ;

            if (flag1)
            {
                this.horseSaddleBottom.rotationPointY     = f6 * 0.5F + f7 * 2.0F;
                this.horseSaddleBottom.rotationPointZ     = f6 * 11.0F + f7 * 2.0F;
                this.horseSaddleFront.rotationPointY      = this.horseSaddleBottom.rotationPointY;
                this.horseSaddleBack.rotationPointY       = this.horseSaddleBottom.rotationPointY;
                this.horseLeftSaddleRope.rotationPointY   = this.horseSaddleBottom.rotationPointY;
                this.horseRightSaddleRope.rotationPointY  = this.horseSaddleBottom.rotationPointY;
                this.horseLeftSaddleMetal.rotationPointY  = this.horseSaddleBottom.rotationPointY;
                this.horseRightSaddleMetal.rotationPointY = this.horseSaddleBottom.rotationPointY;
                this.muleLeftChest.rotationPointY         = this.muleRightChest.rotationPointY;
                this.horseSaddleFront.rotationPointZ      = this.horseSaddleBottom.rotationPointZ;
                this.horseSaddleBack.rotationPointZ       = this.horseSaddleBottom.rotationPointZ;
                this.horseLeftSaddleRope.rotationPointZ   = this.horseSaddleBottom.rotationPointZ;
                this.horseRightSaddleRope.rotationPointZ  = this.horseSaddleBottom.rotationPointZ;
                this.horseLeftSaddleMetal.rotationPointZ  = this.horseSaddleBottom.rotationPointZ;
                this.horseRightSaddleMetal.rotationPointZ = this.horseSaddleBottom.rotationPointZ;
                this.muleLeftChest.rotationPointZ         = this.muleRightChest.rotationPointZ;
                this.horseSaddleBottom.rotateAngleX       = this.body.rotateAngleX;
                this.horseSaddleFront.rotateAngleX        = this.body.rotateAngleX;
                this.horseSaddleBack.rotateAngleX         = this.body.rotateAngleX;
                this.horseLeftRein.rotationPointY         = this.head.rotationPointY;
                this.horseRightRein.rotationPointY        = this.head.rotationPointY;
                this.horseFaceRopes.rotationPointY        = this.head.rotationPointY;
                this.horseLeftFaceMetal.rotationPointY    = this.head.rotationPointY;
                this.horseRightFaceMetal.rotationPointY   = this.head.rotationPointY;
                this.horseLeftRein.rotationPointZ         = this.head.rotationPointZ;
                this.horseRightRein.rotationPointZ        = this.head.rotationPointZ;
                this.horseFaceRopes.rotationPointZ        = this.head.rotationPointZ;
                this.horseLeftFaceMetal.rotationPointZ    = this.head.rotationPointZ;
                this.horseRightFaceMetal.rotationPointZ   = this.head.rotationPointZ;
                this.horseLeftRein.rotateAngleX           = f4;
                this.horseRightRein.rotateAngleX          = f4;
                this.horseFaceRopes.rotateAngleX          = this.head.rotateAngleX;
                this.horseLeftFaceMetal.rotateAngleX      = this.head.rotateAngleX;
                this.horseRightFaceMetal.rotateAngleX     = this.head.rotateAngleX;
                this.horseFaceRopes.rotateAngleY          = this.head.rotateAngleY;
                this.horseLeftFaceMetal.rotateAngleY      = this.head.rotateAngleY;
                this.horseLeftRein.rotateAngleY           = this.head.rotateAngleY;
                this.horseRightFaceMetal.rotateAngleY     = this.head.rotateAngleY;
                this.horseRightRein.rotateAngleY          = this.head.rotateAngleY;

                if (flag2)
                {
                    this.horseLeftSaddleRope.rotateAngleX   = -1.0471976F;
                    this.horseLeftSaddleMetal.rotateAngleX  = -1.0471976F;
                    this.horseRightSaddleRope.rotateAngleX  = -1.0471976F;
                    this.horseRightSaddleMetal.rotateAngleX = -1.0471976F;
                    this.horseLeftSaddleRope.rotateAngleZ   = 0.0F;
                    this.horseLeftSaddleMetal.rotateAngleZ  = 0.0F;
                    this.horseRightSaddleRope.rotateAngleZ  = 0.0F;
                    this.horseRightSaddleMetal.rotateAngleZ = 0.0F;
                }
                else
                {
                    this.horseLeftSaddleRope.rotateAngleX   = f11 / 3.0F;
                    this.horseLeftSaddleMetal.rotateAngleX  = f11 / 3.0F;
                    this.horseRightSaddleRope.rotateAngleX  = f11 / 3.0F;
                    this.horseRightSaddleMetal.rotateAngleX = f11 / 3.0F;
                    this.horseLeftSaddleRope.rotateAngleZ   = f11 / 5.0F;
                    this.horseLeftSaddleMetal.rotateAngleZ  = f11 / 5.0F;
                    this.horseRightSaddleRope.rotateAngleZ  = -f11 / 5.0F;
                    this.horseRightSaddleMetal.rotateAngleZ = -f11 / 5.0F;
                }
            }

            f12 = -1.3089F + p_78086_3_ * 1.5F;

            if (f12 > 0.0F)
            {
                f12 = 0.0F;
            }

            if (flag)
            {
                this.tailBase.rotateAngleY = MathHelper.cos(f9 * 0.7F);
                f12 = 0.0F;
            }
            else
            {
                this.tailBase.rotateAngleY = 0.0F;
            }

            this.tailMiddle.rotateAngleY   = this.tailBase.rotateAngleY;
            this.tailTip.rotateAngleY      = this.tailBase.rotateAngleY;
            this.tailMiddle.rotationPointY = this.tailBase.rotationPointY;
            this.tailTip.rotationPointY    = this.tailBase.rotationPointY;
            this.tailMiddle.rotationPointZ = this.tailBase.rotationPointZ;
            this.tailTip.rotationPointZ    = this.tailBase.rotationPointZ;
            this.tailBase.rotateAngleX     = f12;
            this.tailMiddle.rotateAngleX   = f12;
            this.tailTip.rotateAngleX      = -0.2618F + f12;
        }