package blusunrize.immersiveengineering.client.fx; import net.minecraft.client.particle.Particle; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; /** * @author BluSunrize - 21.02.2017 */ @SideOnly(Side.CLIENT) public class ParticleIEBubble extends Particle { public ParticleIEBubble(World worldIn, double xCoordIn, double yCoordIn, double zCoordIn, double xSpeedIn, double ySpeedIn, double zSpeedIn) { super(worldIn, xCoordIn, yCoordIn, zCoordIn, xSpeedIn, ySpeedIn, zSpeedIn); this.particleRed = 1.0F; this.particleGreen = 1.0F; this.particleBlue = 1.0F; this.setParticleTextureIndex(32); this.setSize(0.02F, 0.02F); this.particleScale *= this.rand.nextFloat()*0.6F+0.2F; this.motionX = xSpeedIn*0.20000000298023224D+(Math.random()*2.0D-1.0D)*0.019999999552965164D; this.motionY = ySpeedIn*0.20000000298023224D+(Math.random()*2.0D-1.0D)*0.019999999552965164D; this.motionZ = zSpeedIn*0.20000000298023224D+(Math.random()*2.0D-1.0D)*0.019999999552965164D; this.particleMaxAge = (int)(8.0D/(Math.random()*0.8D+0.2D)); } @Override public void onUpdate() { this.prevPosX = this.posX; this.prevPosY = this.posY; this.prevPosZ = this.posZ; this.motionY += 0.002D; this.moveEntity(this.motionX, this.motionY, this.motionZ); this.motionX *= 0.8500000238418579D; this.motionY *= 0.8500000238418579D; this.motionZ *= 0.8500000238418579D; if(this.particleMaxAge-- <= 0) this.setExpired(); } }