001 package net.minecraft.client.gui;
002
003 import cpw.mods.fml.relauncher.Side;
004 import cpw.mods.fml.relauncher.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 }