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 }