From 03fc353d82b9261a8156812f1017058458f01fda Mon Sep 17 00:00:00 2001 From: Reider745 Date: Wed, 25 Jun 2025 16:38:26 +0300 Subject: [PATCH] feat: support walls 1.16 --------- Co-authored-by: Koshak_Mine <52908036+KoshakMineDEV@users.noreply.github.com> --- .../block/wall/BlockBlackstoneWall.java | 16 ++++++++++++++++ .../wall/BlockPolishedBlackstoneBrickWall.java | 16 ++++++++++++++++ .../block/wall/BlockPolishedBlackstoneWall.java | 16 ++++++++++++++++ .../java/com/reider745/block/wall/BlockWall.java | 5 ++++- .../com/reider745/hooks/block/BlockPalette.java | 5 +++-- .../com/reider745/hooks/block/BlocksHooks.java | 3 +++ 6 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/reider745/block/wall/BlockBlackstoneWall.java create mode 100644 src/main/java/com/reider745/block/wall/BlockPolishedBlackstoneBrickWall.java create mode 100644 src/main/java/com/reider745/block/wall/BlockPolishedBlackstoneWall.java diff --git a/src/main/java/com/reider745/block/wall/BlockBlackstoneWall.java b/src/main/java/com/reider745/block/wall/BlockBlackstoneWall.java new file mode 100644 index 00000000..bd96d7c6 --- /dev/null +++ b/src/main/java/com/reider745/block/wall/BlockBlackstoneWall.java @@ -0,0 +1,16 @@ +package com.reider745.block.wall; + +public class BlockBlackstoneWall extends BlockWall { + public BlockBlackstoneWall() { + this(0); + } + + public BlockBlackstoneWall(int meta) { + super(meta); + } + + @Override + public WallType getWallType() { + return WallType.BLACKSTONE; + } +} diff --git a/src/main/java/com/reider745/block/wall/BlockPolishedBlackstoneBrickWall.java b/src/main/java/com/reider745/block/wall/BlockPolishedBlackstoneBrickWall.java new file mode 100644 index 00000000..c1edf53e --- /dev/null +++ b/src/main/java/com/reider745/block/wall/BlockPolishedBlackstoneBrickWall.java @@ -0,0 +1,16 @@ +package com.reider745.block.wall; + +public class BlockPolishedBlackstoneBrickWall extends BlockWall { + public BlockPolishedBlackstoneBrickWall() { + this(0); + } + + public BlockPolishedBlackstoneBrickWall(int meta) { + super(meta); + } + + @Override + public BlockWall.WallType getWallType() { + return WallType.POLISHED_BLACKSTONE_BRICK; + } +} diff --git a/src/main/java/com/reider745/block/wall/BlockPolishedBlackstoneWall.java b/src/main/java/com/reider745/block/wall/BlockPolishedBlackstoneWall.java new file mode 100644 index 00000000..2265f75b --- /dev/null +++ b/src/main/java/com/reider745/block/wall/BlockPolishedBlackstoneWall.java @@ -0,0 +1,16 @@ +package com.reider745.block.wall; + +public class BlockPolishedBlackstoneWall extends BlockWall { + public BlockPolishedBlackstoneWall() { + this(0); + } + + public BlockPolishedBlackstoneWall(int meta) { + super(meta); + } + + @Override + public WallType getWallType() { + return WallType.POLISHED_BLACKSTONE; + } +} diff --git a/src/main/java/com/reider745/block/wall/BlockWall.java b/src/main/java/com/reider745/block/wall/BlockWall.java index f35dda7b..b1cc8cc0 100644 --- a/src/main/java/com/reider745/block/wall/BlockWall.java +++ b/src/main/java/com/reider745/block/wall/BlockWall.java @@ -42,7 +42,10 @@ public abstract class BlockWall extends BlockTransparentMeta { NETHER_BRICK(1234, "Nether brick wall"), PRISMARINE(1236, "Prismarine wall"), RED_SANDSTONE(1237, "Red sandstone wall"), - RED_NETHER_BRICK(1238, "Ren nether brick wall"); + RED_NETHER_BRICK(1238, "Red nether brick wall"), + BLACKSTONE(BlockID.BLACKSTONE_WALL, "Blackstone wall"), + POLISHED_BLACKSTONE(BlockID.POLISHED_BLACKSTONE_WALL, "Polished blackstone wall"), + POLISHED_BLACKSTONE_BRICK(BlockID.POLISHED_BLACKSTONE_BRICK_WALL, "Polished blackstone brick wall"); public final int id; public final String name; diff --git a/src/main/java/com/reider745/hooks/block/BlockPalette.java b/src/main/java/com/reider745/hooks/block/BlockPalette.java index 9b91bcd2..b5092cbb 100644 --- a/src/main/java/com/reider745/hooks/block/BlockPalette.java +++ b/src/main/java/com/reider745/hooks/block/BlockPalette.java @@ -213,7 +213,7 @@ public class BlockPalette { doorMeta = doorMeta | BlockDoor.DOOR_HINGE_BIT; legacyId = (blockId << Block.DATA_BITS) | doorMeta; - } else if(blockId == 139) { + } else if(blockId == 139 || blockId == 532 || blockId == 552 || blockId == 533) { int wallMeta = 0; wallMeta = ((wallMeta & ~BlockWall.NORTH_MASK) | ((description.states.getInt("wall_connection_type_north") << Integer.numberOfTrailingZeros(BlockWall.NORTH_MASK)) & BlockWall.NORTH_MASK)); @@ -222,7 +222,8 @@ public class BlockPalette { wallMeta = ((wallMeta & ~BlockWall.SOUTH_MASK) | ((description.states.getInt("wall_connection_type_south") << Integer.numberOfTrailingZeros(BlockWall.SOUTH_MASK)) & BlockWall.SOUTH_MASK)); wallMeta = ((wallMeta & ~BlockWall.POST_MASK) | ((description.states.getInt("wall_post_bit") << Integer.numberOfTrailingZeros(BlockWall.POST_MASK)) & BlockWall.POST_MASK)); - blockId = BlockWall.WallType.values()[description.states.getInt("wall_block_type")].id; + if(description.states.has("wall_block_type")) + blockId = BlockWall.WallType.values()[description.states.getInt("wall_block_type")].id; legacyId = (blockId << Block.DATA_BITS) | wallMeta; } diff --git a/src/main/java/com/reider745/hooks/block/BlocksHooks.java b/src/main/java/com/reider745/hooks/block/BlocksHooks.java index d60bedf1..984b685e 100644 --- a/src/main/java/com/reider745/hooks/block/BlocksHooks.java +++ b/src/main/java/com/reider745/hooks/block/BlocksHooks.java @@ -49,6 +49,9 @@ public class BlocksHooks { registerWall(BlockWall.WallType.MOSSY_STONE_BRICK, BlockMossyStoneBrickWall.class); registerWall(BlockWall.WallType.MOSSY_COBBLESTONE, BlockMossyCobblestoneWall.class); registerWall(BlockWall.WallType.RED_SANDSTONE, BlockRedSandstoneWall.class); + registerWall(BlockWall.WallType.BLACKSTONE, BlockBlackstoneWall.class); + registerWall(BlockWall.WallType.POLISHED_BLACKSTONE, BlockPolishedBlackstoneWall.class); + registerWall(BlockWall.WallType.POLISHED_BLACKSTONE_BRICK, BlockPolishedBlackstoneBrickWall.class); } @ShadowGetField(className = "cn.nukkit.item.Item", field = "block")