2012-03-20 07:44:35 +01:00
|
|
|
package net.minecraft.server;
|
|
|
|
|
|
|
|
public class EntityThrownExpBottle extends EntityProjectile {
|
|
|
|
|
|
|
|
public EntityThrownExpBottle(World world) {
|
|
|
|
super(world);
|
|
|
|
}
|
|
|
|
|
|
|
|
public EntityThrownExpBottle(World world, EntityLiving entityliving) {
|
|
|
|
super(world, entityliving);
|
|
|
|
}
|
|
|
|
|
|
|
|
public EntityThrownExpBottle(World world, double d0, double d1, double d2) {
|
|
|
|
super(world, d0, d1, d2);
|
|
|
|
}
|
|
|
|
|
|
|
|
protected float e() {
|
|
|
|
return 0.07F;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected float c() {
|
|
|
|
return 0.7F;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected float d() {
|
|
|
|
return -20.0F;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected void a(MovingObjectPosition movingobjectposition) {
|
|
|
|
if (!this.world.isStatic) {
|
2012-03-20 08:07:13 +01:00
|
|
|
// CraftBukkit moved after event
|
|
|
|
//this.world.triggerEffect(2002, (int) Math.round(this.locX), (int) Math.round(this.locY), (int) Math.round(this.locZ), 0);
|
2012-03-20 07:44:35 +01:00
|
|
|
int i = 3 + this.world.random.nextInt(5) + this.world.random.nextInt(5);
|
|
|
|
|
2012-03-20 08:07:13 +01:00
|
|
|
// CraftBukkit start
|
|
|
|
org.bukkit.event.entity.ExpBottleEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callExpBottleEvent(this, i);
|
|
|
|
i = event.getExperience();
|
|
|
|
if (event.getShowEffect()) {
|
|
|
|
this.world.triggerEffect(2002, (int) Math.round(this.locX), (int) Math.round(this.locY), (int) Math.round(this.locZ), 0);
|
|
|
|
}
|
|
|
|
// CraftBukkit end
|
|
|
|
|
2012-03-20 07:44:35 +01:00
|
|
|
while (i > 0) {
|
|
|
|
int j = EntityExperienceOrb.getOrbValue(i);
|
|
|
|
|
|
|
|
i -= j;
|
|
|
|
this.world.addEntity(new EntityExperienceOrb(this.world, this.locX, this.locY, this.locZ, j));
|
|
|
|
}
|
|
|
|
|
|
|
|
this.die();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|