001    package net.minecraft.src;
002    
003    public class EntityBodyHelper
004    {
005        /** Instance of EntityLiving. */
006        private EntityLiving theLiving;
007        private int field_75666_b = 0;
008        private float field_75667_c = 0.0F;
009    
010        public EntityBodyHelper(EntityLiving par1EntityLiving)
011        {
012            this.theLiving = par1EntityLiving;
013        }
014    
015        public void func_75664_a()
016        {
017            double var1 = this.theLiving.posX - this.theLiving.prevPosX;
018            double var3 = this.theLiving.posZ - this.theLiving.prevPosZ;
019    
020            if (var1 * var1 + var3 * var3 > 2.500000277905201E-7D)
021            {
022                this.theLiving.renderYawOffset = this.theLiving.rotationYaw;
023                this.theLiving.rotationYawHead = this.func_75665_a(this.theLiving.renderYawOffset, this.theLiving.rotationYawHead, 75.0F);
024                this.field_75667_c = this.theLiving.rotationYawHead;
025                this.field_75666_b = 0;
026            }
027            else
028            {
029                float var5 = 75.0F;
030    
031                if (Math.abs(this.theLiving.rotationYawHead - this.field_75667_c) > 15.0F)
032                {
033                    this.field_75666_b = 0;
034                    this.field_75667_c = this.theLiving.rotationYawHead;
035                }
036                else
037                {
038                    ++this.field_75666_b;
039    
040                    if (this.field_75666_b > 10)
041                    {
042                        var5 = Math.max(1.0F - (float)(this.field_75666_b - 10) / 10.0F, 0.0F) * 75.0F;
043                    }
044                }
045    
046                this.theLiving.renderYawOffset = this.func_75665_a(this.theLiving.rotationYawHead, this.theLiving.renderYawOffset, var5);
047            }
048        }
049    
050        private float func_75665_a(float par1, float par2, float par3)
051        {
052            float var4 = MathHelper.wrapAngleTo180_float(par1 - par2);
053    
054            if (var4 < -par3)
055            {
056                var4 = -par3;
057            }
058    
059            if (var4 >= par3)
060            {
061                var4 = par3;
062            }
063    
064            return par1 - var4;
065        }
066    }