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