diff options
author | Dinnerbone <dinnerbone@dinnerbone.com> | 2011-09-15 01:23:52 +0100 |
---|---|---|
committer | Dinnerbone <dinnerbone@dinnerbone.com> | 2011-09-15 01:23:52 +0100 |
commit | 5b2c774edc069f70d1fa9940d96bb0b8705bef7a (patch) | |
tree | 79d1800e7154bba7b5fca4f8c8373ee4376cca89 /src/main/java/net/minecraft/server/ItemDoor.java | |
parent | 54bcd1c1f36691a714234e5ca2f30a20b3ad2816 (diff) | |
download | craftbukkit-5b2c774edc069f70d1fa9940d96bb0b8705bef7a.tar craftbukkit-5b2c774edc069f70d1fa9940d96bb0b8705bef7a.tar.gz craftbukkit-5b2c774edc069f70d1fa9940d96bb0b8705bef7a.tar.lz craftbukkit-5b2c774edc069f70d1fa9940d96bb0b8705bef7a.tar.xz craftbukkit-5b2c774edc069f70d1fa9940d96bb0b8705bef7a.zip |
Update for Minecraft 1.8
Diffstat (limited to 'src/main/java/net/minecraft/server/ItemDoor.java')
-rw-r--r-- | src/main/java/net/minecraft/server/ItemDoor.java | 123 |
1 files changed, 69 insertions, 54 deletions
diff --git a/src/main/java/net/minecraft/server/ItemDoor.java b/src/main/java/net/minecraft/server/ItemDoor.java index 5e9d921b..7e772b80 100644 --- a/src/main/java/net/minecraft/server/ItemDoor.java +++ b/src/main/java/net/minecraft/server/ItemDoor.java @@ -20,8 +20,6 @@ public class ItemDoor extends Item { if (l != 1) { return false; } else { - int clickedX = i, clickedY = j, clickedZ = k; // CraftBukkit - ++j; Block block; @@ -31,70 +29,87 @@ public class ItemDoor extends Item { block = Block.IRON_DOOR_BLOCK; } - if (!block.canPlace(world, i, j, k)) { - return false; - } else { - int i1 = MathHelper.floor((double) ((entityhuman.yaw + 180.0F) * 4.0F / 360.0F) - 0.5D) & 3; - byte b0 = 0; - byte b1 = 0; - - if (i1 == 0) { - b1 = 1; + if (entityhuman.c(i, j, k) && entityhuman.c(i, j + 1, k)) { + if (!block.canPlace(world, i, j, k)) { + return false; + } else { + int i1 = MathHelper.floor((double) ((entityhuman.yaw + 180.0F) * 4.0F / 360.0F) - 0.5D) & 3; + + // CraftBukkit start + if (a(world, i, j, k, i1, block, entityhuman)) { + --itemstack.count; + return true; + } else { + return false; + } + // CraftBukkit end } + } else { + return false; + } + } + } - if (i1 == 1) { - b0 = -1; - } + // Craftbukkit - void -> boolean + entityhuman argument + 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 + byte b0 = 0; + byte b1 = 0; - if (i1 == 2) { - b1 = -1; - } + if (l == 0) { + b1 = 1; + } - if (i1 == 3) { - b0 = 1; - } + if (l == 1) { + b0 = -1; + } - int j1 = (world.e(i - b0, j, k - b1) ? 1 : 0) + (world.e(i - b0, j + 1, k - b1) ? 1 : 0); - int k1 = (world.e(i + b0, j, k + b1) ? 1 : 0) + (world.e(i + b0, j + 1, k + b1) ? 1 : 0); - boolean flag = world.getTypeId(i - b0, j, k - b1) == block.id || world.getTypeId(i - b0, j + 1, k - b1) == block.id; - boolean flag1 = world.getTypeId(i + b0, j, k + b1) == block.id || world.getTypeId(i + b0, j + 1, k + b1) == block.id; - boolean flag2 = false; + if (l == 2) { + b1 = -1; + } - if (flag && !flag1) { - flag2 = true; - } else if (k1 > j1) { - flag2 = true; - } + if (l == 3) { + b0 = 1; + } - if (flag2) { - i1 = i1 - 1 & 3; - i1 += 4; - } + int i1 = (world.e(i - b0, j, k - b1) ? 1 : 0) + (world.e(i - b0, j + 1, k - b1) ? 1 : 0); + int j1 = (world.e(i + b0, j, k + b1) ? 1 : 0) + (world.e(i + b0, j + 1, k + b1) ? 1 : 0); + boolean flag = world.getTypeId(i - b0, j, k - b1) == block.id || world.getTypeId(i - b0, j + 1, k - b1) == block.id; + boolean flag1 = world.getTypeId(i + b0, j, k + b1) == block.id || world.getTypeId(i + b0, j + 1, k + b1) == block.id; + boolean flag2 = false; - CraftBlockState blockState = CraftBlockState.getBlockState(world, i, j, k); // CraftBukkit + if (flag && !flag1) { + flag2 = true; + } else if (j1 > i1) { + flag2 = true; + } - world.suppressPhysics = true; - world.setTypeIdAndData(i, j, k, block.id, i1); + if (flag2) { + l = l - 1 & 3; + l += 4; + } - // CraftBukkit start - bed - world.suppressPhysics = false; - world.applyPhysics(i, j, k, Block.REDSTONE_WIRE.id); - BlockPlaceEvent event = CraftEventFactory.callBlockPlaceEvent(world, entityhuman, blockState, clickedX, clickedY, clickedZ, block); + CraftBlockState blockState = CraftBlockState.getBlockState(world, i, j, k); // CraftBukkit - if (event.isCancelled() || !event.canBuild()) { - event.getBlockPlaced().setTypeIdAndData(blockState.getTypeId(), blockState.getRawData(), false); - return false; - } + world.suppressPhysics = true; + world.setTypeIdAndData(i, j, k, block.id, l); + // CraftBukkit start - bed + world.suppressPhysics = false; + world.applyPhysics(i, j, k, Block.REDSTONE_WIRE.id); + BlockPlaceEvent event = CraftEventFactory.callBlockPlaceEvent(world, entityhuman, blockState, clickedX, clickedY, clickedZ, block); - world.suppressPhysics = true; - // CraftBukkit end - world.setTypeIdAndData(i, j + 1, k, block.id, i1 + 8); - world.suppressPhysics = false; - // world.applyPhysics(i, j, k, block.id); // CraftBukkit - moved up - world.applyPhysics(i, j + 1, k, Block.REDSTONE_WIRE.id); - --itemstack.count; - return true; - } + 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 + 1, k, block.id); + + return true; // CraftBukkit } } |