summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTahg <tahgtahv@gmail.com>2012-01-07 18:38:05 -0500
committerTahg <tahgtahv@gmail.com>2012-01-07 18:38:05 -0500
commitb74a69041e0a86e3be167babded9399907ed9cce (patch)
tree0c40feb90f3d155c9ea175fcaa66dd519d56f530 /src
parent483a619e8add1abe758998deb90af2b00eede649 (diff)
downloadcraftbukkit-b74a69041e0a86e3be167babded9399907ed9cce.tar
craftbukkit-b74a69041e0a86e3be167babded9399907ed9cce.tar.gz
craftbukkit-b74a69041e0a86e3be167babded9399907ed9cce.tar.lz
craftbukkit-b74a69041e0a86e3be167babded9399907ed9cce.tar.xz
craftbukkit-b74a69041e0a86e3be167babded9399907ed9cce.zip
Fix door physics and revert to pre 1.0 behavior
Diffstat (limited to 'src')
-rw-r--r--src/main/java/net/minecraft/server/BlockDoor.java7
-rw-r--r--src/main/java/net/minecraft/server/ItemDoor.java22
2 files changed, 10 insertions, 19 deletions
diff --git a/src/main/java/net/minecraft/server/BlockDoor.java b/src/main/java/net/minecraft/server/BlockDoor.java
index b2482240..047b8682 100644
--- a/src/main/java/net/minecraft/server/BlockDoor.java
+++ b/src/main/java/net/minecraft/server/BlockDoor.java
@@ -142,8 +142,7 @@ public class BlockDoor extends Block {
if (world.getTypeId(i, j - 1, k) != this.id) {
world.setTypeId(i, j, k, 0);
}
-
- if (l > 0 && l != this.id) {
+ else if (l > 0 && l != this.id) { // CraftBukkit
this.doPhysics(world, i, j - 1, k, l);
}
} else {
@@ -166,8 +165,8 @@ public class BlockDoor extends Block {
if (!world.isStatic) {
this.b(world, i, j, k, i1, 0);
}
- } else if (l > 0 && l != this.id) {
- // CraftBukkit start
+ // CraftBukkit start
+ } else if (l > 0 && Block.byId[l].isPowerSource()) {
org.bukkit.World bworld = world.getWorld();
org.bukkit.block.Block block = bworld.getBlockAt(i, j, k);
org.bukkit.block.Block blockTop = bworld.getBlockAt(i, j + 1, k);
diff --git a/src/main/java/net/minecraft/server/ItemDoor.java b/src/main/java/net/minecraft/server/ItemDoor.java
index fc3dd9c9..7c1aba2d 100644
--- a/src/main/java/net/minecraft/server/ItemDoor.java
+++ b/src/main/java/net/minecraft/server/ItemDoor.java
@@ -50,12 +50,12 @@ public class ItemDoor extends Item {
}
public static void a(World world, int i, int j, int k, int l, Block block) {
- // CraftBukkit Start
+ // CraftBukkit start
a(world, i, j, k, l, block, null);
}
public static boolean a(World world, int i, int j, int k, int l, Block block, EntityHuman entityhuman) {
- int clickedX = i, clickedY = j, clickedZ = k; // CraftBukkit
+ // CraftBukkit end
byte b0 = 0;
byte b1 = 0;
@@ -93,30 +93,22 @@ public class ItemDoor extends Item {
}
CraftBlockState blockState = CraftBlockState.getBlockState(world, i, j, k); // CraftBukkit
-
world.suppressPhysics = true;
world.setTypeIdAndData(i, j, k, block.id, l);
- world.suppressPhysics = false;
-
- world.applyPhysics(i, j, k, block.id);
-
+ // CraftBukkit start
if (entityhuman != null) {
- BlockPlaceEvent event = CraftEventFactory.callBlockPlaceEvent(world, entityhuman, blockState, clickedX, clickedY, clickedZ, block);
+ BlockPlaceEvent event = CraftEventFactory.callBlockPlaceEvent(world, entityhuman, blockState, i, j, k, block);
if (event.isCancelled() || !event.canBuild()) {
event.getBlockPlaced().setTypeIdAndData(blockState.getTypeId(), blockState.getRawData(), false);
return false;
}
}
-
- world.suppressPhysics = true;
+ //CraftBukkit end
world.setTypeIdAndData(i, j + 1, k, block.id, l + 8);
world.suppressPhysics = false;
-
- // world.applyPhysics(i, j, k, block.id); // CraftBukkit - moved up
+ world.applyPhysics(i, j, k, block.id);
world.applyPhysics(i, j + 1, k, block.id);
-
- return true;
- // CraftBukkit end
+ return true; // CraftBukkit
}
}