CraftBukkit/src/main/java/net/minecraft/server/EntityExperienceOrb.java
Wesley Wolfe b00de5f176 Cleaned up CraftBukkit comments in NMS.
Added newlines at the end of files
Fixed improper line endings on some files
Matched start - end comments
Added some missing comments for diffs
Fixed syntax on some spots
Minimized some diff
Removed some no longer used files
Added comment on some required files with no changes
Fixed imports of items used once
Added imports for items used more than once
2012-07-23 23:55:31 -05:00

181 lines
6.2 KiB
Java

package net.minecraft.server;
// CraftBukkit start
import org.bukkit.craftbukkit.event.CraftEventFactory;
import org.bukkit.event.entity.EntityTargetEvent;
// CraftBukkit end
public class EntityExperienceOrb extends Entity {
public int a;
public int b = 0;
public int c;
private int d = 5;
public int value; // CraftBukkit - priv to pub
public EntityExperienceOrb(World world, double d0, double d1, double d2, int i) {
super(world);
this.b(0.5F, 0.5F);
this.height = this.length / 2.0F;
this.setPosition(d0, d1, d2);
this.yaw = (float) (Math.random() * 360.0D);
this.motX = (double) ((float) (Math.random() * 0.20000000298023224D - 0.10000000149011612D) * 2.0F);
this.motY = (double) ((float) (Math.random() * 0.2D) * 2.0F);
this.motZ = (double) ((float) (Math.random() * 0.20000000298023224D - 0.10000000149011612D) * 2.0F);
this.value = i;
}
protected boolean g_() {
return false;
}
public EntityExperienceOrb(World world) {
super(world);
this.b(0.25F, 0.25F);
this.height = this.length / 2.0F;
}
protected void b() {}
public void F_() {
super.F_();
if (this.c > 0) {
--this.c;
}
this.lastX = this.locX;
this.lastY = this.locY;
this.lastZ = this.locZ;
this.motY -= 0.029999999329447746D;
if (this.world.getMaterial(MathHelper.floor(this.locX), MathHelper.floor(this.locY), MathHelper.floor(this.locZ)) == Material.LAVA) {
this.motY = 0.20000000298023224D;
this.motX = (double) ((this.random.nextFloat() - this.random.nextFloat()) * 0.2F);
this.motZ = (double) ((this.random.nextFloat() - this.random.nextFloat()) * 0.2F);
this.world.makeSound(this, "random.fizz", 0.4F, 2.0F + this.random.nextFloat() * 0.4F);
}
this.g(this.locX, (this.boundingBox.b + this.boundingBox.e) / 2.0D, this.locZ);
double d0 = 8.0D;
EntityHuman entityhuman = this.world.findNearbyPlayer(this, d0);
if (entityhuman != null) {
// CraftBukkit start
EntityTargetEvent event = CraftEventFactory.callEntityTargetEvent(this, entityhuman, EntityTargetEvent.TargetReason.CLOSEST_PLAYER);
Entity target = event.getTarget() == null ? null : ((org.bukkit.craftbukkit.entity.CraftEntity) event.getTarget()).getHandle();
if (!event.isCancelled() && target != null) {
double d1 = (target.locX - this.locX) / d0;
double d2 = (target.locY + (double) target.getHeadHeight() - this.locY) / d0;
double d3 = (target.locZ - this.locZ) / d0;
double d4 = Math.sqrt(d1 * d1 + d2 * d2 + d3 * d3);
double d5 = 1.0D - d4;
if (d5 > 0.0D) {
d5 *= d5;
this.motX += d1 / d4 * d5 * 0.1D;
this.motY += d2 / d4 * d5 * 0.1D;
this.motZ += d3 / d4 * d5 * 0.1D;
}
// CraftBukkit end
}
}
this.move(this.motX, this.motY, this.motZ);
float f = 0.98F;
if (this.onGround) {
f = 0.58800006F;
int i = this.world.getTypeId(MathHelper.floor(this.locX), MathHelper.floor(this.boundingBox.b) - 1, MathHelper.floor(this.locZ));
if (i > 0) {
f = Block.byId[i].frictionFactor * 0.98F;
}
}
this.motX *= (double) f;
this.motY *= 0.9800000190734863D;
this.motZ *= (double) f;
if (this.onGround) {
this.motY *= -0.8999999761581421D;
}
++this.a;
++this.b;
if (this.b >= 6000) {
this.die();
}
}
public boolean h_() {
return this.world.a(this.boundingBox, Material.WATER, this);
}
protected void burn(int i) {
this.damageEntity(DamageSource.FIRE, i);
}
public boolean damageEntity(DamageSource damagesource, int i) {
this.aW();
this.d -= i;
if (this.d <= 0) {
this.die();
}
return false;
}
public void b(NBTTagCompound nbttagcompound) {
nbttagcompound.setShort("Health", (short) ((byte) this.d));
nbttagcompound.setShort("Age", (short) this.b);
nbttagcompound.setShort("Value", (short) this.value);
}
public void a(NBTTagCompound nbttagcompound) {
this.d = nbttagcompound.getShort("Health") & 255;
this.b = nbttagcompound.getShort("Age");
this.value = nbttagcompound.getShort("Value");
}
public void a_(EntityHuman entityhuman) {
if (!this.world.isStatic) {
if (this.c == 0 && entityhuman.x == 0) {
entityhuman.x = 2;
this.world.makeSound(this, "random.orb", 0.1F, 0.5F * ((this.random.nextFloat() - this.random.nextFloat()) * 0.7F + 1.8F));
entityhuman.receive(this, 1);
entityhuman.giveExp(CraftEventFactory.callPlayerExpChangeEvent(entityhuman, this.value).getAmount()); // CraftBukkit - this.value to event.getAmount()
this.die();
}
}
}
public int y_() {
return this.value;
}
public static int getOrbValue(int i) {
// CraftBukkit start
if (i > 162670129) return i - 100000;
if (i > 81335063) return 81335063;
if (i > 40667527) return 40667527;
if (i > 20333759) return 20333759;
if (i > 10166857) return 10166857;
if (i > 5083423) return 5083423;
if (i > 2541701) return 2541701;
if (i > 1270849) return 1270849;
if (i > 635413) return 635413;
if (i > 317701) return 317701;
if (i > 158849) return 158849;
if (i > 79423) return 79423;
if (i > 39709) return 39709;
if (i > 19853) return 19853;
if (i > 9923) return 9923;
if (i > 4957) return 4957;
// CraftBukkit end
return i >= 2477 ? 2477 : (i >= 1237 ? 1237 : (i >= 617 ? 617 : (i >= 307 ? 307 : (i >= 149 ? 149 : (i >= 73 ? 73 : (i >= 37 ? 37 : (i >= 17 ? 17 : (i >= 7 ? 7 : (i >= 3 ? 3 : 1)))))))));
}
public boolean k_() {
return false;
}
}