--- ../src-base/minecraft/net/minecraft/block/BlockStairs.java +++ ../src-work/minecraft/net/minecraft/block/BlockStairs.java @@ -483,6 +483,29 @@ return new BlockStateContainer(this, new IProperty[] {field_176309_a, field_176308_b, field_176310_M}); } + @Override + public boolean doesSideBlockRendering(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing face) + { + if (net.minecraftforge.common.ForgeModContainer.disableStairSlabCulling) + return super.doesSideBlockRendering(state, world, pos, face); + + if ( state.func_185914_p() ) + return true; + + state = this.func_176221_a(state, world, pos); + + EnumHalf half = state.func_177229_b(field_176308_b); + EnumFacing side = state.func_177229_b(field_176309_a); + EnumShape shape = state.func_177229_b(field_176310_M); + if (face == EnumFacing.UP) return half == EnumHalf.TOP; + if (face == EnumFacing.DOWN) return half == EnumHalf.BOTTOM; + if (shape == EnumShape.OUTER_LEFT || shape == EnumShape.OUTER_RIGHT) return false; + if (face == side) return true; + if (shape == EnumShape.INNER_LEFT && face.func_176746_e() == side) return true; + if (shape == EnumShape.INNER_RIGHT && face.func_176735_f() == side) return true; + return false; + } + public static enum EnumHalf implements IStringSerializable { TOP("top"),