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