diff --git a/src/main/java/com/hbm/blocks/generic/BlockGrate.java b/src/main/java/com/hbm/blocks/generic/BlockGrate.java index 767aaed21..f0fad0edd 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGrate.java @@ -109,13 +109,15 @@ public class BlockGrate extends Block implements ITooltipProvider { if(meta == 0) { // Check that the block below can fit a grate above it - AxisAlignedBB bb = world.getBlock(x, y - 1, z).getCollisionBoundingBoxFromPool(world, x, y - 1, z); - if(bb == null || (int) ((bb.maxY - (y - 1)) * 100) < 90) { + Block block = world.getBlock(x, y - 1, z); + AxisAlignedBB bb = block.getCollisionBoundingBoxFromPool(world, x, y - 1, z); + if(!block.isAir(world, x, y + 1, z) && (bb == null || (int) ((bb.maxY - (y - 1)) * 100) < 90)) { world.setBlockMetadataWithNotify(x, y, z, 9, 3); } } else if(meta == 7) { - AxisAlignedBB bb = world.getBlock(x, y + 1, z).getCollisionBoundingBoxFromPool(world, x, y + 1, z); - if(bb == null || (int) ((bb.minY - (y + 1)) * 100) > 10) { + Block block = world.getBlock(x, y + 1, z); + AxisAlignedBB bb = block.getCollisionBoundingBoxFromPool(world, x, y + 1, z); + if(!block.isAir(world, x, y + 1, z) && (bb == null || (int) ((bb.minY - (y + 1)) * 100) > 10)) { world.setBlockMetadataWithNotify(x, y, z, 8, 3); } } diff --git a/src/main/java/com/hbm/render/block/RenderGrate.java b/src/main/java/com/hbm/render/block/RenderGrate.java index f6858c584..ca5f37aa6 100644 --- a/src/main/java/com/hbm/render/block/RenderGrate.java +++ b/src/main/java/com/hbm/render/block/RenderGrate.java @@ -23,6 +23,13 @@ public class RenderGrate implements ISimpleBlockRenderingHandler { tessellator.setColorOpaque_F(1, 1, 1); float fy = ((BlockGrate)block).getY(meta); + if(fy < 0) { + fy++; + y--; + } else if(fy >= 1) { + fy--; + y++; + } renderer.setRenderBounds(0.0D, fy, 0D, 1D, fy + 0.125D, 1D); renderer.renderStandardBlock(block, x, y, z);