001    package net.minecraft.src;
002    
003    import cpw.mods.fml.common.Side;
004    import cpw.mods.fml.common.asm.SideOnly;
005    
006    @SideOnly(Side.CLIENT)
007    public class EntityCrit2FX extends EntityFX
008    {
009        private Entity field_70557_a;
010        private int currentLife;
011        private int maximumLife;
012        private String particleName;
013    
014        public EntityCrit2FX(World par1World, Entity par2Entity)
015        {
016            this(par1World, par2Entity, "crit");
017        }
018    
019        public EntityCrit2FX(World par1World, Entity par2Entity, String par3Str)
020        {
021            super(par1World, par2Entity.posX, par2Entity.boundingBox.minY + (double)(par2Entity.height / 2.0F), par2Entity.posZ, par2Entity.motionX, par2Entity.motionY, par2Entity.motionZ);
022            this.currentLife = 0;
023            this.maximumLife = 0;
024            this.field_70557_a = par2Entity;
025            this.maximumLife = 3;
026            this.particleName = par3Str;
027            this.onUpdate();
028        }
029    
030        public void renderParticle(Tessellator par1Tessellator, float par2, float par3, float par4, float par5, float par6, float par7) {}
031    
032        /**
033         * Called to update the entity's position/logic.
034         */
035        public void onUpdate()
036        {
037            for (int var1 = 0; var1 < 16; ++var1)
038            {
039                double var2 = (double)(this.rand.nextFloat() * 2.0F - 1.0F);
040                double var4 = (double)(this.rand.nextFloat() * 2.0F - 1.0F);
041                double var6 = (double)(this.rand.nextFloat() * 2.0F - 1.0F);
042    
043                if (var2 * var2 + var4 * var4 + var6 * var6 <= 1.0D)
044                {
045                    double var8 = this.field_70557_a.posX + var2 * (double)this.field_70557_a.width / 4.0D;
046                    double var10 = this.field_70557_a.boundingBox.minY + (double)(this.field_70557_a.height / 2.0F) + var4 * (double)this.field_70557_a.height / 4.0D;
047                    double var12 = this.field_70557_a.posZ + var6 * (double)this.field_70557_a.width / 4.0D;
048                    this.worldObj.spawnParticle(this.particleName, var8, var10, var12, var2, var4 + 0.2D, var6);
049                }
050            }
051    
052            ++this.currentLife;
053    
054            if (this.currentLife >= this.maximumLife)
055            {
056                this.setDead();
057            }
058        }
059    
060        public int getFXLayer()
061        {
062            return 3;
063        }
064    }