Update CraftBukkit to Minecraft 1.4.6

This commit is contained in:
feildmaster
2012-12-19 22:03:52 -06:00
parent 9f1bf124ee
commit 23b6764374
115 changed files with 1930 additions and 1426 deletions

View File

@@ -26,11 +26,11 @@ public class EntityMinecart extends Entity implements IInventory {
private boolean h;
private static final int[][][] matrix = new int[][][] { { { 0, 0, -1}, { 0, 0, 1}}, { { -1, 0, 0}, { 1, 0, 0}}, { { -1, -1, 0}, { 1, 0, 0}}, { { -1, 0, 0}, { 1, -1, 0}}, { { 0, 0, -1}, { 0, -1, 1}}, { { 0, -1, -1}, { 0, 0, 1}}, { { 0, 0, 1}, { 1, 0, 0}}, { { 0, 0, 1}, { -1, 0, 0}}, { { 0, 0, -1}, { -1, 0, 0}}, { { 0, 0, -1}, { 1, 0, 0}}};
private int j;
private double as;
private double at;
private double au;
private double av;
private double aw;
private double ax;
// CraftBukkit start
public boolean slowWhenEmpty = true;
@@ -237,7 +237,7 @@ public class EntityMinecart extends Entity implements IInventory {
EntityItem entityitem = new EntityItem(this.world, this.locX + (double) f, this.locY + (double) f1, this.locZ + (double) f2, new ItemStack(itemstack.id, j, itemstack.getData()));
if (itemstack.hasTag()) {
entityitem.itemStack.setTag((NBTTagCompound) itemstack.getTag().clone());
entityitem.getItemStack().setTag((NBTTagCompound) itemstack.getTag().clone());
}
float f3 = 0.05F;
@@ -291,15 +291,57 @@ public class EntityMinecart extends Entity implements IInventory {
this.world.addParticle("largesmoke", this.locX, this.locY + 0.8D, this.locZ, 0.0D, 0.0D, 0.0D);
}
int i;
if (!this.world.isStatic && this.world instanceof WorldServer) {
this.world.methodProfiler.a("portal");
MinecraftServer minecraftserver = ((WorldServer) this.world).getMinecraftServer();
i = this.z();
if (this.ao) {
if (minecraftserver.getAllowNether()) {
if (this.vehicle == null && this.ap++ >= i) {
this.ap = i;
this.portalCooldown = this.ab();
byte b0;
if (this.world.worldProvider.dimension == -1) {
b0 = 0;
} else {
b0 = -1;
}
this.b(b0);
}
this.ao = false;
}
} else {
if (this.ap > 0) {
this.ap -= 4;
}
if (this.ap < 0) {
this.ap = 0;
}
}
if (this.portalCooldown > 0) {
--this.portalCooldown;
}
this.world.methodProfiler.b();
}
if (this.world.isStatic) {
if (this.j > 0) {
double d0 = this.locX + (this.as - this.locX) / (double) this.j;
double d1 = this.locY + (this.at - this.locY) / (double) this.j;
double d2 = this.locZ + (this.au - this.locZ) / (double) this.j;
double d3 = MathHelper.g(this.av - (double) this.yaw);
double d0 = this.locX + (this.at - this.locX) / (double) this.j;
double d1 = this.locY + (this.au - this.locY) / (double) this.j;
double d2 = this.locZ + (this.av - this.locZ) / (double) this.j;
double d3 = MathHelper.g(this.aw - (double) this.yaw);
this.yaw = (float) ((double) this.yaw + d3 / (double) this.j);
this.pitch = (float) ((double) this.pitch + (this.aw - (double) this.pitch) / (double) this.j);
this.pitch = (float) ((double) this.pitch + (this.ax - (double) this.pitch) / (double) this.j);
--this.j;
this.setPosition(d0, d1, d2);
this.b(this.yaw, this.pitch);
@@ -312,25 +354,25 @@ public class EntityMinecart extends Entity implements IInventory {
this.lastY = this.locY;
this.lastZ = this.locZ;
this.motY -= 0.03999999910593033D;
int i = MathHelper.floor(this.locX);
int j = MathHelper.floor(this.locY);
int j = MathHelper.floor(this.locX);
i = MathHelper.floor(this.locY);
int k = MathHelper.floor(this.locZ);
if (BlockMinecartTrack.e_(this.world, i, j - 1, k)) {
--j;
if (BlockMinecartTrack.e_(this.world, j, i - 1, k)) {
--i;
}
// CraftBukkit
double d4 = this.maxSpeed;
double d5 = 0.0078125D;
int l = this.world.getTypeId(i, j, k);
int l = this.world.getTypeId(j, i, k);
if (BlockMinecartTrack.d(l)) {
if (BlockMinecartTrack.e(l)) {
this.fallDistance = 0.0F;
Vec3D vec3d = this.a(this.locX, this.locY, this.locZ);
int i1 = this.world.getData(i, j, k);
int i1 = this.world.getData(j, i, k);
this.locY = (double) j;
this.locY = (double) i;
boolean flag = false;
boolean flag1 = false;
@@ -344,7 +386,7 @@ public class EntityMinecart extends Entity implements IInventory {
}
if (i1 >= 2 && i1 <= 5) {
this.locY = (double) (j + 1);
this.locY = (double) (i + 1);
}
if (i1 == 2) {
@@ -405,9 +447,9 @@ public class EntityMinecart extends Entity implements IInventory {
}
d12 = 0.0D;
d11 = (double) i + 0.5D + (double) aint[0][0] * 0.5D;
d11 = (double) j + 0.5D + (double) aint[0][0] * 0.5D;
double d13 = (double) k + 0.5D + (double) aint[0][2] * 0.5D;
double d14 = (double) i + 0.5D + (double) aint[1][0] * 0.5D;
double d14 = (double) j + 0.5D + (double) aint[1][0] * 0.5D;
double d15 = (double) k + 0.5D + (double) aint[1][2] * 0.5D;
d6 = d14 - d11;
@@ -416,11 +458,11 @@ public class EntityMinecart extends Entity implements IInventory {
double d17;
if (d6 == 0.0D) {
this.locX = (double) i + 0.5D;
this.locX = (double) j + 0.5D;
d12 = this.locZ - (double) k;
} else if (d7 == 0.0D) {
this.locZ = (double) k + 0.5D;
d12 = this.locX - (double) i;
d12 = this.locX - (double) j;
} else {
d16 = this.locX - d11;
d17 = this.locZ - d13;
@@ -454,9 +496,9 @@ public class EntityMinecart extends Entity implements IInventory {
}
this.move(d16, 0.0D, d17);
if (aint[0][1] != 0 && MathHelper.floor(this.locX) - i == aint[0][0] && MathHelper.floor(this.locZ) - k == aint[0][2]) {
if (aint[0][1] != 0 && MathHelper.floor(this.locX) - j == aint[0][0] && MathHelper.floor(this.locZ) - k == aint[0][2]) {
this.setPosition(this.locX, this.locY + (double) aint[0][1], this.locZ);
} else if (aint[1][1] != 0 && MathHelper.floor(this.locX) - i == aint[1][0] && MathHelper.floor(this.locZ) - k == aint[1][2]) {
} else if (aint[1][1] != 0 && MathHelper.floor(this.locX) - j == aint[1][0] && MathHelper.floor(this.locZ) - k == aint[1][2]) {
this.setPosition(this.locX, this.locY + (double) aint[1][1], this.locZ);
}
@@ -509,9 +551,9 @@ public class EntityMinecart extends Entity implements IInventory {
int j1 = MathHelper.floor(this.locX);
int k1 = MathHelper.floor(this.locZ);
if (j1 != i || k1 != k) {
if (j1 != j || k1 != k) {
d10 = Math.sqrt(this.motX * this.motX + this.motZ * this.motZ);
this.motX = d10 * (double) (j1 - i);
this.motX = d10 * (double) (j1 - j);
this.motZ = d10 * (double) (k1 - k);
}
@@ -541,15 +583,15 @@ public class EntityMinecart extends Entity implements IInventory {
this.motX += this.motX / d21 * d22;
this.motZ += this.motZ / d21 * d22;
} else if (i1 == 1) {
if (this.world.t(i - 1, j, k)) {
if (this.world.t(j - 1, i, k)) {
this.motX = 0.02D;
} else if (this.world.t(i + 1, j, k)) {
} else if (this.world.t(j + 1, i, k)) {
this.motX = -0.02D;
}
} else if (i1 == 0) {
if (this.world.t(i, j, k - 1)) {
if (this.world.t(j, i, k - 1)) {
this.motZ = 0.02D;
} else if (this.world.t(i, j, k + 1)) {
} else if (this.world.t(j, i, k + 1)) {
this.motZ = -0.02D;
}
}
@@ -666,7 +708,7 @@ public class EntityMinecart extends Entity implements IInventory {
int l = this.world.getTypeId(i, j, k);
if (BlockMinecartTrack.d(l)) {
if (BlockMinecartTrack.e(l)) {
int i1 = this.world.getData(i, j, k);
d1 = (double) j;