    001    package net.minecraft.entity.projectile;
    002
    003    import net.minecraft.entity.EntityLiving;
    004    import net.minecraft.entity.monster.EntityBlaze;
    005    import net.minecraft.util.DamageSource;
    006    import net.minecraft.util.MovingObjectPosition;
    007    import net.minecraft.world.World;
    008
    009    public class EntitySnowball extends EntityThrowable
    010    {
    011        public EntitySnowball(World par1World)
    012        {
    013            super(par1World);
    014        }
    015
    016        public EntitySnowball(World par1World, EntityLiving par2EntityLiving)
    017        {
    018            super(par1World, par2EntityLiving);
    019        }
    020
    021        public EntitySnowball(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                byte var2 = 0;
    034
    035                if (par1MovingObjectPosition.entityHit instanceof EntityBlaze)
    036                {
    037                    var2 = 3;
    038                }
    039
    040                par1MovingObjectPosition.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.func_85052_h()), var2);
    041            }
    042
    043            for (int var3 = 0; var3 < 8; ++var3)
    044            {
    045                this.worldObj.spawnParticle("snowballpoof", this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D);
    046            }
    047
    048            if (!this.worldObj.isRemote)
    049            {
    050                this.setDead();
    051            }
    052        }
    053    }