001    package net.minecraft.src;
002    
003    public class EntitySnowball extends EntityThrowable
004    {
005        public EntitySnowball(World par1World)
006        {
007            super(par1World);
008        }
009    
010        public EntitySnowball(World par1World, EntityLiving par2EntityLiving)
011        {
012            super(par1World, par2EntityLiving);
013        }
014    
015        public EntitySnowball(World par1World, double par2, double par4, double par6)
016        {
017            super(par1World, par2, par4, par6);
018        }
019    
020        /**
021         * Called when this EntityThrowable hits a block or entity.
022         */
023        protected void onImpact(MovingObjectPosition par1MovingObjectPosition)
024        {
025            if (par1MovingObjectPosition.entityHit != null)
026            {
027                byte var2 = 0;
028    
029                if (par1MovingObjectPosition.entityHit instanceof EntityBlaze)
030                {
031                    var2 = 3;
032                }
033    
034                par1MovingObjectPosition.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.thrower), var2);
035            }
036    
037            for (int var3 = 0; var3 < 8; ++var3)
038            {
039                this.worldObj.spawnParticle("snowballpoof", this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D);
040            }
041    
042            if (!this.worldObj.isRemote)
043            {
044                this.setDead();
045            }
046        }
047    }