    001package net.minecraft.client.particle;
    002
    003import cpw.mods.fml.relauncher.Side;
    004import cpw.mods.fml.relauncher.SideOnly;
    005import net.minecraft.client.renderer.Tessellator;
    006import net.minecraft.world.World;
    007
    008@SideOnly(Side.CLIENT)
    009public 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 i = 0; i < 6; ++i)
    030        {
    031            double d0 = this.posX + (this.rand.nextDouble() - this.rand.nextDouble()) * 4.0D;
    032            double d1 = this.posY + (this.rand.nextDouble() - this.rand.nextDouble()) * 4.0D;
    033            double d2 = this.posZ + (this.rand.nextDouble() - this.rand.nextDouble()) * 4.0D;
    034            this.worldObj.spawnParticle("largeexplode", d0, d1, d2, (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}