001 package net.minecraft.src; 002 003 import cpw.mods.fml.common.Side; 004 import cpw.mods.fml.common.asm.SideOnly; 005 006 public class EntityEnderPearl extends EntityThrowable 007 { 008 public EntityEnderPearl(World par1World) 009 { 010 super(par1World); 011 } 012 013 public EntityEnderPearl(World par1World, EntityLiving par2EntityLiving) 014 { 015 super(par1World, par2EntityLiving); 016 } 017 018 @SideOnly(Side.CLIENT) 019 public EntityEnderPearl(World par1World, double par2, double par4, double par6) 020 { 021 super(par1World, par2, par4, par6); 022 } 023 024 /** 025 * Called when this EntityThrowable hits a block or entity. 026 */ 027 protected void onImpact(MovingObjectPosition par1MovingObjectPosition) 028 { 029 if (par1MovingObjectPosition.entityHit != null) 030 { 031 par1MovingObjectPosition.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.func_85052_h()), 0); 032 } 033 034 for (int var2 = 0; var2 < 32; ++var2) 035 { 036 this.worldObj.spawnParticle("portal", this.posX, this.posY + this.rand.nextDouble() * 2.0D, this.posZ, this.rand.nextGaussian(), 0.0D, this.rand.nextGaussian()); 037 } 038 039 if (!this.worldObj.isRemote) 040 { 041 if (this.func_85052_h() != null && this.func_85052_h() instanceof EntityPlayerMP) 042 { 043 EntityPlayerMP var3 = (EntityPlayerMP)this.func_85052_h(); 044 045 if (!var3.playerNetServerHandler.connectionClosed && var3.worldObj == this.worldObj) 046 { 047 this.func_85052_h().setPositionAndUpdate(this.posX, this.posY, this.posZ); 048 this.func_85052_h().fallDistance = 0.0F; 049 this.func_85052_h().attackEntityFrom(DamageSource.fall, 5); 050 } 051 } 052 053 this.setDead(); 054 } 055 } 056 }