001 package net.minecraft.entity.item; 002 003 import net.minecraft.entity.EntityLiving; 004 import net.minecraft.entity.projectile.EntityThrowable; 005 import net.minecraft.util.MovingObjectPosition; 006 import net.minecraft.world.World; 007 008 public class EntityExpBottle extends EntityThrowable 009 { 010 public EntityExpBottle(World par1World) 011 { 012 super(par1World); 013 } 014 015 public EntityExpBottle(World par1World, EntityLiving par2EntityLiving) 016 { 017 super(par1World, par2EntityLiving); 018 } 019 020 public EntityExpBottle(World par1World, double par2, double par4, double par6) 021 { 022 super(par1World, par2, par4, par6); 023 } 024 025 /** 026 * Gets the amount of gravity to apply to the thrown entity with each tick. 027 */ 028 protected float getGravityVelocity() 029 { 030 return 0.07F; 031 } 032 033 protected float func_70182_d() 034 { 035 return 0.7F; 036 } 037 038 protected float func_70183_g() 039 { 040 return -20.0F; 041 } 042 043 /** 044 * Called when this EntityThrowable hits a block or entity. 045 */ 046 protected void onImpact(MovingObjectPosition par1MovingObjectPosition) 047 { 048 if (!this.worldObj.isRemote) 049 { 050 this.worldObj.playAuxSFX(2002, (int)Math.round(this.posX), (int)Math.round(this.posY), (int)Math.round(this.posZ), 0); 051 int var2 = 3 + this.worldObj.rand.nextInt(5) + this.worldObj.rand.nextInt(5); 052 053 while (var2 > 0) 054 { 055 int var3 = EntityXPOrb.getXPSplit(var2); 056 var2 -= var3; 057 this.worldObj.spawnEntityInWorld(new EntityXPOrb(this.worldObj, this.posX, this.posY, this.posZ, var3)); 058 } 059 060 this.setDead(); 061 } 062 } 063 }