From e0b04001aa0a715ccd15a4292f35bf4925b5e30c Mon Sep 17 00:00:00 2001 From: Erik Broes Date: Sat, 22 Jan 2011 23:20:07 +0100 Subject: [PATCH] Fixed placement of blocks with meta-data. (Dyed wool, logs etc) --- src/main/java/net/minecraft/server/ItemBlock.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/minecraft/server/ItemBlock.java b/src/main/java/net/minecraft/server/ItemBlock.java index 5fd020ae78..edf628cb15 100644 --- a/src/main/java/net/minecraft/server/ItemBlock.java +++ b/src/main/java/net/minecraft/server/ItemBlock.java @@ -66,7 +66,15 @@ public class ItemBlock extends Item { Block block = Block.m[a]; // This executes the placement of the block - if (world.b(i, j, k, a)) { + /* + * This replaces world.b(IIIII), we're doing this because we need to + * hook between the 'placement' and the informing to 'world' so we can + * sanely undo this. + * + * Whenever the call to 'world.b' changes we need to figure out again what to + * replace this with. + */ + if (world.a(i, j, k, a, a(itemstack.h()))) { // <-- world.b does this to place the block CraftBlock placedBlock = (CraftBlock) blockClicked.getFace(faceClicked) ; CraftItemStack itemInHand = new CraftItemStack(itemstack); CraftPlayer thePlayer = new CraftPlayer(((WorldServer) world).getServer(), (EntityPlayerMP) entityplayer); @@ -90,10 +98,9 @@ public class ItemBlock extends Item { world.b(i, j - 1, k, 44); } - world.b(i, j, k, oldMaterial); - world.d(i, j, k, oldData); + world.a(i, j, k, oldMaterial, oldData); } else { - world.c(i, j, k, a, a(itemstack.h())); + world.f(i, j, k, a); // <-- world.b does this on success (tell the world) Block.m[a].c(world, i, j, k, l); Block.m[a].a(world, i, j, k, ((EntityLiving) (entityplayer)));