001    package net.minecraft.client.particle;
002    
003    import cpw.mods.fml.relauncher.Side;
004    import cpw.mods.fml.relauncher.SideOnly;
005    import net.minecraft.client.renderer.Tessellator;
006    import net.minecraft.world.World;
007    
008    @SideOnly(Side.CLIENT)
009    public class EntityHugeExplodeFX extends EntityFX
010    {
011        private int timeSinceStart = 0;
012    
013        /** the maximum time for the explosion */
014        private int maximumTime = 0;
015    
016        public EntityHugeExplodeFX(World par1World, double par2, double par4, double par6, double par8, double par10, double par12)
017        {
018            super(par1World, par2, par4, par6, 0.0D, 0.0D, 0.0D);
019            this.maximumTime = 8;
020        }
021    
022        public void renderParticle(Tessellator par1Tessellator, float par2, float par3, float par4, float par5, float par6, float par7) {}
023    
024        /**
025         * Called to update the entity's position/logic.
026         */
027        public void onUpdate()
028        {
029            for (int var1 = 0; var1 < 6; ++var1)
030            {
031                double var2 = this.posX + (this.rand.nextDouble() - this.rand.nextDouble()) * 4.0D;
032                double var4 = this.posY + (this.rand.nextDouble() - this.rand.nextDouble()) * 4.0D;
033                double var6 = this.posZ + (this.rand.nextDouble() - this.rand.nextDouble()) * 4.0D;
034                this.worldObj.spawnParticle("largeexplode", var2, var4, var6, (double)((float)this.timeSinceStart / (float)this.maximumTime), 0.0D, 0.0D);
035            }
036    
037            ++this.timeSinceStart;
038    
039            if (this.timeSinceStart == this.maximumTime)
040            {
041                this.setDead();
042            }
043        }
044    
045        public int getFXLayer()
046        {
047            return 1;
048        }
049    }