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 }