diff --git a/src/main/java/com/cricketcraft/chisel/carving/CarvableHelper.java b/src/main/java/com/cricketcraft/chisel/carving/CarvableHelper.java index ece59db9..5d7d0a5a 100644 --- a/src/main/java/com/cricketcraft/chisel/carving/CarvableHelper.java +++ b/src/main/java/com/cricketcraft/chisel/carving/CarvableHelper.java @@ -231,8 +231,8 @@ public class CarvableHelper return variation.iconTop; Block block = world.getBlock(x, y, z); - boolean topConnected = block.equals(world.getBlock(x, y + 1, z)) && metadata == world.getBlockMetadata(x, y + 1, z); - boolean botConnected = block.equals(world.getBlock(x, y - 1, z)) && metadata == world.getBlockMetadata(x, y - 1, z); + boolean topConnected = block.equals(CTM.getBlockOrFacade(world, x, y + 1, z, side)) && metadata == CTM.getBlockOrFacadeMetadata(world, x, y + 1, z, side); + boolean botConnected = block.equals(CTM.getBlockOrFacade(world, x, y - 1, z, side)) && metadata == CTM.getBlockOrFacadeMetadata(world, x, y - 1, z, side); if(topConnected && botConnected) return variation.seamsCtmVert.icons[2]; if(topConnected && !botConnected) return variation.seamsCtmVert.icons[3]; @@ -243,7 +243,7 @@ public class CarvableHelper if(side < 2) return variation.iconTop; - Block block = world.getBlock(x, y, z); + Block block = CTM.getBlockOrFacade(world, x, y, z, side); boolean p; boolean n; @@ -251,12 +251,12 @@ public class CarvableHelper if(side < 4) { - p = isSame(world, x - 1, y, z, block, metadata); - n = isSame(world, x + 1, y, z, block, metadata); + p = isSame(world, x - 1, y, z, block, metadata, side); + n = isSame(world, x + 1, y, z, block, metadata, side); } else { - p = isSame(world, x, y, z + 1, block, metadata); - n = isSame(world, x, y, z - 1, block, metadata); + p = isSame(world, x, y, z + 1, block, metadata, side); + n = isSame(world, x, y, z - 1, block, metadata, side); } if(p && n) return variation.seamsCtmVert.icons[1]; @@ -421,9 +421,9 @@ public class CarvableHelper } } - private boolean isSame(IBlockAccess world, int x, int y, int z, Block block, int meta) + private boolean isSame(IBlockAccess world, int x, int y, int z, Block block, int meta, int side) { - return world.getBlock(x, y, z).equals(block) && world.getBlockMetadata(x, y, z) == meta; + return CTM.getBlockOrFacade(world, x, y, z, side).equals(block) && CTM.getBlockOrFacadeMetadata(world, x, y, z, side) == meta; } public void setChiselBlockName(String name) diff --git a/src/main/java/com/cricketcraft/chisel/client/render/CTM.java b/src/main/java/com/cricketcraft/chisel/client/render/CTM.java index 218787ca..9bee8821 100644 --- a/src/main/java/com/cricketcraft/chisel/client/render/CTM.java +++ b/src/main/java/com/cricketcraft/chisel/client/render/CTM.java @@ -290,7 +290,7 @@ public class CTM return getBlockOrFacade(world, x, y, z, side).equals(block) && getBlockOrFacadeMetadata(world, x, y, z, side) == meta && (!getBlockOrFacade(world, x2, y2, z2, side).equals(block) || getBlockOrFacadeMetadata(world, x2, y2, z2, side) != meta); } - protected static int getBlockOrFacadeMetadata(IBlockAccess world, int x, int y, int z, int side) { + public static int getBlockOrFacadeMetadata(IBlockAccess world, int x, int y, int z, int side) { Block blk = world.getBlock(x, y, z); if(blk instanceof IFacade) { return ((IFacade)blk).getFacadeMetadata(world, x, y, z, side); @@ -298,7 +298,7 @@ public class CTM return world.getBlockMetadata(x, y, z); } - protected static Block getBlockOrFacade(IBlockAccess world, int x, int y, int z, int side) { + public static Block getBlockOrFacade(IBlockAccess world, int x, int y, int z, int side) { Block blk = world.getBlock(x, y, z); if(blk instanceof IFacade) { blk = ((IFacade)blk).getFacade(world, x, y, z, side);