001 package net.minecraft.src; 002 003 import cpw.mods.fml.common.Side; 004 import cpw.mods.fml.common.asm.SideOnly; 005 006 @SideOnly(Side.CLIENT) 007 public class SoundUpdaterMinecart implements IUpdatePlayerListBox 008 { 009 private final SoundManager field_82477_a; 010 private final EntityMinecart field_82475_b; 011 private final EntityPlayerSP field_82476_c; 012 private boolean field_82473_d = false; 013 private boolean field_82474_e = false; 014 private boolean field_82471_f = false; 015 private boolean field_82472_g = false; 016 private float field_82480_h = 0.0F; 017 private float field_82481_i = 0.0F; 018 private float field_82478_j = 0.0F; 019 private double field_82479_k = 0.0D; 020 021 public SoundUpdaterMinecart(SoundManager par1SoundManager, EntityMinecart par2EntityMinecart, EntityPlayerSP par3EntityPlayerSP) 022 { 023 this.field_82477_a = par1SoundManager; 024 this.field_82475_b = par2EntityMinecart; 025 this.field_82476_c = par3EntityPlayerSP; 026 } 027 028 /** 029 * Updates the JList with a new model. 030 */ 031 public void update() 032 { 033 boolean var1 = false; 034 boolean var2 = this.field_82473_d; 035 boolean var3 = this.field_82474_e; 036 boolean var4 = this.field_82471_f; 037 float var5 = this.field_82481_i; 038 float var6 = this.field_82480_h; 039 float var7 = this.field_82478_j; 040 double var8 = this.field_82479_k; 041 this.field_82473_d = this.field_82476_c != null && this.field_82475_b.riddenByEntity == this.field_82476_c; 042 this.field_82474_e = this.field_82475_b.isDead; 043 this.field_82479_k = (double)MathHelper.sqrt_double(this.field_82475_b.motionX * this.field_82475_b.motionX + this.field_82475_b.motionZ * this.field_82475_b.motionZ); 044 this.field_82471_f = this.field_82479_k >= 0.01D; 045 046 if (var2 && !this.field_82473_d) 047 { 048 this.field_82477_a.func_82469_c(this.field_82476_c); 049 } 050 051 if (this.field_82474_e || !this.field_82472_g && this.field_82481_i == 0.0F && this.field_82478_j == 0.0F) 052 { 053 if (!var3) 054 { 055 this.field_82477_a.func_82469_c(this.field_82475_b); 056 057 if (var2 || this.field_82473_d) 058 { 059 this.field_82477_a.func_82469_c(this.field_82476_c); 060 } 061 } 062 063 this.field_82472_g = true; 064 065 if (this.field_82474_e) 066 { 067 return; 068 } 069 } 070 071 if (!this.field_82477_a.func_82465_b(this.field_82475_b) && this.field_82481_i > 0.0F) 072 { 073 this.field_82477_a.func_82467_a("minecart.base", this.field_82475_b, this.field_82481_i, this.field_82480_h, false); 074 this.field_82472_g = false; 075 var1 = true; 076 } 077 078 if (this.field_82473_d && !this.field_82477_a.func_82465_b(this.field_82476_c) && this.field_82478_j > 0.0F) 079 { 080 this.field_82477_a.func_82467_a("minecart.inside", this.field_82476_c, this.field_82478_j, 1.0F, true); 081 this.field_82472_g = false; 082 var1 = true; 083 } 084 085 if (this.field_82471_f) 086 { 087 if (this.field_82480_h < 1.0F) 088 { 089 this.field_82480_h += 0.0025F; 090 } 091 092 if (this.field_82480_h > 1.0F) 093 { 094 this.field_82480_h = 1.0F; 095 } 096 097 float var10 = MathHelper.clamp_float((float)this.field_82479_k, 0.0F, 4.0F) / 4.0F; 098 this.field_82478_j = 0.0F + var10 * 0.75F; 099 var10 = MathHelper.clamp_float(var10 * 2.0F, 0.0F, 1.0F); 100 this.field_82481_i = 0.0F + var10 * 0.7F; 101 } 102 else if (var4) 103 { 104 this.field_82481_i = 0.0F; 105 this.field_82480_h = 0.0F; 106 this.field_82478_j = 0.0F; 107 } 108 109 if (!this.field_82472_g) 110 { 111 if (this.field_82480_h != var6) 112 { 113 this.field_82477_a.func_82463_b(this.field_82475_b, this.field_82480_h); 114 } 115 116 if (this.field_82481_i != var5) 117 { 118 this.field_82477_a.func_82468_a(this.field_82475_b, this.field_82481_i); 119 } 120 121 if (this.field_82478_j != var7) 122 { 123 this.field_82477_a.func_82468_a(this.field_82476_c, this.field_82478_j); 124 } 125 } 126 127 if (!var1) 128 { 129 this.field_82477_a.func_82460_a(this.field_82475_b); 130 131 if (this.field_82473_d) 132 { 133 this.field_82477_a.func_82462_a(this.field_82476_c, this.field_82475_b); 134 } 135 } 136 } 137 }