001    package net.minecraft.entity.projectile;
002    
003    import net.minecraft.entity.EntityLiving;
004    import net.minecraft.entity.passive.EntityChicken;
005    import net.minecraft.util.DamageSource;
006    import net.minecraft.util.MovingObjectPosition;
007    import net.minecraft.world.World;
008    
009    public class EntityEgg extends EntityThrowable
010    {
011        public EntityEgg(World par1World)
012        {
013            super(par1World);
014        }
015    
016        public EntityEgg(World par1World, EntityLiving par2EntityLiving)
017        {
018            super(par1World, par2EntityLiving);
019        }
020    
021        public EntityEgg(World par1World, double par2, double par4, double par6)
022        {
023            super(par1World, par2, par4, par6);
024        }
025    
026        /**
027         * Called when this EntityThrowable hits a block or entity.
028         */
029        protected void onImpact(MovingObjectPosition par1MovingObjectPosition)
030        {
031            if (par1MovingObjectPosition.entityHit != null)
032            {
033                par1MovingObjectPosition.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), 0);
034            }
035    
036            if (!this.worldObj.isRemote && this.rand.nextInt(8) == 0)
037            {
038                byte var2 = 1;
039    
040                if (this.rand.nextInt(32) == 0)
041                {
042                    var2 = 4;
043                }
044    
045                for (int var3 = 0; var3 < var2; ++var3)
046                {
047                    EntityChicken var4 = new EntityChicken(this.worldObj);
048                    var4.setGrowingAge(-24000);
049                    var4.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, 0.0F);
050                    this.worldObj.spawnEntityInWorld(var4);
051                }
052            }
053    
054            for (int var5 = 0; var5 < 8; ++var5)
055            {
056                this.worldObj.spawnParticle("snowballpoof", this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D);
057            }
058    
059            if (!this.worldObj.isRemote)
060            {
061                this.setDead();
062            }
063        }
064    }