Vertical hitbox

This commit is contained in:
2025-11-12 20:52:56 +01:00
parent 139bc09aca
commit f289104f3f
@@ -21,6 +21,8 @@ public class CableBlock extends Block {
public static final BooleanProperty SOUTH = BooleanProperty.of("south");
public static final BooleanProperty EAST = BooleanProperty.of("east");
public static final BooleanProperty WEST = BooleanProperty.of("west");
public static final BooleanProperty UP = BooleanProperty.of("up");
public static final BooleanProperty DOWN = BooleanProperty.of("down");
public CableBlock(AbstractBlock.Settings settings) {
super(settings);
@@ -28,12 +30,14 @@ public class CableBlock extends Block {
.with(NORTH, false)
.with(SOUTH, false)
.with(EAST, false)
.with(WEST, false));
.with(WEST, false)
.with(UP, false)
.with(DOWN, false));
}
@Override
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
builder.add(NORTH, SOUTH, EAST, WEST);
builder.add(NORTH, SOUTH, EAST, WEST, UP, DOWN);
}
@Override
@@ -43,25 +47,34 @@ public class CableBlock extends Block {
boolean south = world.getBlockState(pos.south()).getBlock() instanceof CableBlock;
boolean east = world.getBlockState(pos.east()).getBlock() instanceof CableBlock;
boolean west = world.getBlockState(pos.west()).getBlock() instanceof CableBlock;
boolean up = world.getBlockState(pos.up()).getBlock() instanceof CableBlock;
boolean down = world.getBlockState(pos.down()).getBlock() instanceof CableBlock;
world.setBlockState(pos, state.with(NORTH, north)
world.setBlockState(pos, state
.with(NORTH, north)
.with(SOUTH, south)
.with(EAST, east)
.with(WEST, west), 2);
.with(WEST, west)
.with(UP, up)
.with(DOWN, down), 2);
}
@Override
public void onPlaced(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack itemStack) {
super.onPlaced(world, pos, state, placer, itemStack);
boolean north = world.getBlockState(pos.north()).getBlock() instanceof CableBlock;
boolean south = world.getBlockState(pos.south()).getBlock() instanceof CableBlock;
boolean east = world.getBlockState(pos.east()).getBlock() instanceof CableBlock;
boolean west = world.getBlockState(pos.west()).getBlock() instanceof CableBlock;
boolean up = world.getBlockState(pos.up()).getBlock() instanceof CableBlock;
boolean down = world.getBlockState(pos.down()).getBlock() instanceof CableBlock;
world.setBlockState(pos, state.with(NORTH, north)
world.setBlockState(pos, state
.with(NORTH, north)
.with(SOUTH, south)
.with(EAST, east)
.with(WEST, west), 2);
.with(WEST, west)
.with(UP, up)
.with(DOWN, down), 2);
}
@Override
@@ -72,6 +85,8 @@ public class CableBlock extends Block {
boolean south = state.get(SOUTH);
boolean east = state.get(EAST);
boolean west = state.get(WEST);
boolean up = state.get(UP);
boolean down = state.get(DOWN);
if (north || (south && !east && !west))
shape = VoxelShapes.union(shape, Block.createCuboidShape(6, 6, 0, 10, 10, 6));
@@ -81,6 +96,10 @@ public class CableBlock extends Block {
shape = VoxelShapes.union(shape, Block.createCuboidShape(10, 6, 6, 16, 10, 10));
if (west || (!north && !south && east))
shape = VoxelShapes.union(shape, Block.createCuboidShape(0, 6, 6, 6, 10, 10));
if (up)
shape = VoxelShapes.union(shape, Block.createCuboidShape(6, 6, 6, 10, 16, 10));
if (down)
shape = VoxelShapes.union(shape, Block.createCuboidShape(6, 0, 6, 10, 6, 10));
return shape;
}