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.getThrower()), 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 }