    001    package net.minecraft.client.gui;
    002
    003    import cpw.mods.fml.common.Side;
    004    import cpw.mods.fml.common.asm.SideOnly;
    005    import java.util.Random;
    006
    007    @SideOnly(Side.CLIENT)
    008    public class Particle
    009    {
    010        private static Random rand = new Random();
    011        public double posX;
    012        public double posY;
    013        public double prevPosX;
    014        public double prevPosY;
    015        public double velocityX;
    016        public double velocityY;
    017        public double accelScale;
    018        public boolean isDead;
    019        public int timeTick;
    020        public int timeLimit;
    021        public double tintRed;
    022        public double tintGreen;
    023        public double tintBlue;
    024        public double tintAlpha;
    025        public double prevTintRed;
    026        public double prevTintGreen;
    027        public double prevTintBlue;
    028        public double prevTintAlpha;
    029
    030        public void update(GuiParticle par1GuiParticle)
    031        {
    032            this.posX += this.velocityX;
    033            this.posY += this.velocityY;
    034            this.velocityX *= this.accelScale;
    035            this.velocityY *= this.accelScale;
    036            this.velocityY += 0.1D;
    037
    038            if (++this.timeTick > this.timeLimit)
    039            {
    040                this.setDead();
    041            }
    042
    043            this.tintAlpha = 2.0D - (double)this.timeTick / (double)this.timeLimit * 2.0D;
    044
    045            if (this.tintAlpha > 1.0D)
    046            {
    047                this.tintAlpha = 1.0D;
    048            }
    049
    050            this.tintAlpha *= this.tintAlpha;
    051            this.tintAlpha *= 0.5D;
    052        }
    053
    054        public void preUpdate()
    055        {
    056            this.prevTintRed = this.tintRed;
    057            this.prevTintGreen = this.tintGreen;
    058            this.prevTintBlue = this.tintBlue;
    059            this.prevTintAlpha = this.tintAlpha;
    060            this.prevPosX = this.posX;
    061            this.prevPosY = this.posY;
    062        }
    063
    064        public void setDead()
    065        {
    066            this.isDead = true;
    067        }
    068    }