    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    }