From 8fbe78a2c3b65f4140c4d0db4bed5a9bcdaf1792 Mon Sep 17 00:00:00 2001 From: Nathan Adams Date: Tue, 29 Nov 2011 23:17:43 +0000 Subject: Updated to use mc-dev rename revision 1 --- .../net/minecraft/server/EntityFallingBlock.java | 90 ++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 src/main/java/net/minecraft/server/EntityFallingBlock.java (limited to 'src/main/java/net/minecraft/server/EntityFallingBlock.java') diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java new file mode 100644 index 00000000..b95d61ac --- /dev/null +++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java @@ -0,0 +1,90 @@ +package net.minecraft.server; + +public class EntityFallingBlock extends Entity { + + public int a; + public int data; // CraftBukkit + public int b = 0; + + public EntityFallingBlock(World world) { + super(world); + } + + // CraftBukkit -- changed method signature + public EntityFallingBlock(World world, double d0, double d1, double d2, int i, int data) { + super(world); + this.a = i; + this.bc = true; + this.data = data; // CraftBukkit + this.b(0.98F, 0.98F); + this.height = this.length / 2.0F; + this.setPosition(d0, d1, d2); + this.motX = 0.0D; + this.motY = 0.0D; + this.motZ = 0.0D; + this.lastX = d0; + this.lastY = d1; + this.lastZ = d2; + } + + protected boolean g_() { + return false; + } + + protected void b() {} + + public boolean e_() { + return !this.dead; + } + + public void w_() { + if (this.a == 0) { + this.die(); + } else { + this.lastX = this.locX; + this.lastY = this.locY; + this.lastZ = this.locZ; + ++this.b; + this.motY -= 0.03999999910593033D; + this.move(this.motX, this.motY, this.motZ); + this.motX *= 0.9800000190734863D; + this.motY *= 0.9800000190734863D; + this.motZ *= 0.9800000190734863D; + int i = MathHelper.floor(this.locX); + int j = MathHelper.floor(this.locY); + int k = MathHelper.floor(this.locZ); + + if (this.b == 1 && this.world.getTypeId(i, j, k) == this.a) { + this.world.setTypeId(i, j, k, 0); + } else if (!this.world.isStatic && this.b == 1) { + this.die(); + } + + if (this.onGround) { + this.motX *= 0.699999988079071D; + this.motZ *= 0.699999988079071D; + this.motY *= -0.5D; + if (this.world.getTypeId(i, j, k) != Block.PISTON_MOVING.id) { + this.die(); + // CraftBukkit -- setTypeId => setTypeIdAndData + if ((!this.world.a(this.a, i, j, k, true, 1) || BlockSand.g(this.world, i, j - 1, k) || !this.world.setTypeIdAndData(i, j, k, this.a, this.data)) && !this.world.isStatic) { + this.b(this.a, 1); + } + } + } else if (this.b > 100 && !this.world.isStatic) { + this.b(this.a, 1); + this.die(); + } + } + } + + protected void b(NBTTagCompound nbttagcompound) { + nbttagcompound.setByte("Tile", (byte) this.a); + nbttagcompound.setByte("Data", (byte) this.data); // CraftBukkit + } + + protected void a(NBTTagCompound nbttagcompound) { + this.a = nbttagcompound.getByte("Tile") & 255; + this.data = nbttagcompound.getByte("Data") & 15; // CraftBukkit + } +} -- cgit v1.2.3