diff --git a/src/main/java/jp/ngt/rtm/block/BlockScaffold.java b/src/main/java/jp/ngt/rtm/block/BlockScaffold.java index 7e367f60..fe41a775 100644 --- a/src/main/java/jp/ngt/rtm/block/BlockScaffold.java +++ b/src/main/java/jp/ngt/rtm/block/BlockScaffold.java @@ -64,10 +64,10 @@ public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAligne if (tile instanceof TileEntityScaffold) { b0 = ((TileEntityScaffold) tile).getDir() == 0; } - byte flag0 = BlockScaffold.getConnectionType(world, x + 1, y, z, (byte) 0); - byte flag1 = BlockScaffold.getConnectionType(world, x - 1, y, z, (byte) 0); - byte flag2 = BlockScaffold.getConnectionType(world, x, y, z + 1, (byte) 1); - byte flag3 = BlockScaffold.getConnectionType(world, x, y, z - 1, (byte) 1); + byte flag0 = BlockScaffold.getConnectionType(world, x + 1, y, z, tile); + byte flag1 = BlockScaffold.getConnectionType(world, x - 1, y, z, tile); + byte flag2 = BlockScaffold.getConnectionType(world, x, y, z + 1, tile); + byte flag3 = BlockScaffold.getConnectionType(world, x, y, z - 1, tile); if ((b0 && flag0 == 0) || (!b0 && flag0 == 0 && (flag2 == 1 || flag3 == 1 || flag2 == 3 || flag3 == 3)))//XPos { @@ -115,6 +115,21 @@ public int colorMultiplier(IBlockAccess world, int x, int y, int z) { return this.getRenderColor(meta); } + + /** + * @return なし:0, 足場Z:1, 足場X:2, 階段:3, 立方体:4 + */ + public static byte getConnectionType(IBlockAccess world, int x, int y, int z, TileEntity tile) { + boolean isStairs = tile instanceof TileEntityScaffoldStairs; + if (isStairs) { + byte stairsDir = ((TileEntityScaffoldStairs) tile).getDir(); + return getConnectionType(world, x, y, z, stairsDir); + } else { + return getConnectionType(world, x, y, z); + } + } + + /** * @return なし:0, 足場Z:1, 足場X:2, 階段:3, 立方体:4 */ diff --git a/src/main/resources/assets/minecraft/scripts/RenderScaffold.js b/src/main/resources/assets/minecraft/scripts/RenderScaffold.js index 271e5418..1c617275 100644 --- a/src/main/resources/assets/minecraft/scripts/RenderScaffold.js +++ b/src/main/resources/assets/minecraft/scripts/RenderScaffold.js @@ -36,10 +36,10 @@ function render(entity, pass, par3) { } //なし:0, 足場Z:1, 足場X:2, 階段:3, 立方体:4 - var flag0 = BlockScaffold.getConnectionType(world, x + 1, y, z, 0); - var flag1 = BlockScaffold.getConnectionType(world, x - 1, y, z, 0); - var flag2 = BlockScaffold.getConnectionType(world, x, y, z + 1, 1); - var flag3 = BlockScaffold.getConnectionType(world, x, y, z - 1, 1); + var flag0 = BlockScaffold.getConnectionType(world, x + 1, y, z, entity); + var flag1 = BlockScaffold.getConnectionType(world, x - 1, y, z, entity); + var flag2 = BlockScaffold.getConnectionType(world, x, y, z + 1, entity); + var flag3 = BlockScaffold.getConnectionType(world, x, y, z - 1, entity); var flagXP = (b0 && flag0 == 0) || (!b0 && flag0 == 0 && (flag2 == 1 || flag3 == 1 || flag2 == 3 || flag3 == 3)); var flagXN = (b0 && flag1 == 0) || (!b0 && flag1 == 0 && (flag2 == 1 || flag3 == 1 || flag2 == 3 || flag3 == 3)); var flagZP = (!b0 && flag2 == 0) || (b0 && flag2 == 0 && (flag0 == 2 || flag1 == 2 || flag0 == 3 || flag1 == 3));