    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    }