From b8e81a63b7e56abbf6176b0d4436fac75dc47c89 Mon Sep 17 00:00:00 2001 From: Aquaholic Date: Wed, 31 Dec 2025 00:13:32 +0800 Subject: [PATCH 1/2] RedstoneInteractionBlock can now be automatically placed --- .../spectrum/blocks/redstone/RedstoneInteractionBlock.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneInteractionBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneInteractionBlock.java index 0271d5170b..bd6759b43b 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneInteractionBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneInteractionBlock.java @@ -42,8 +42,8 @@ protected void appendProperties(StateManager.Builder builder) public BlockState getPlacementState(ItemPlacementContext ctx) { Direction direction = ctx.getPlayerLookDirection().getOpposite(); Direction direction2 = switch (direction) { - case DOWN -> ctx.getPlayer().getHorizontalFacing().getOpposite(); - case UP -> ctx.getPlayer().getHorizontalFacing(); + case DOWN -> ctx.getHorizontalPlayerFacing().getOpposite(); + case UP -> ctx.getHorizontalPlayerFacing(); case NORTH, SOUTH, WEST, EAST -> Direction.UP; }; From 2c6a0f518ccac5f0f730c8f3c8bf3aec6e652066 Mon Sep 17 00:00:00 2001 From: Aquaholic Date: Wed, 31 Dec 2025 00:27:05 +0800 Subject: [PATCH 2/2] BlockPlacerPlacementContext now provides a look direction. --- .../dafuqs/spectrum/blocks/redstone/BlockPlacerBlock.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/de/dafuqs/spectrum/blocks/redstone/BlockPlacerBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/redstone/BlockPlacerBlock.java index dba2febd57..c5c5370a6c 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/redstone/BlockPlacerBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/redstone/BlockPlacerBlock.java @@ -133,9 +133,16 @@ public int getComparatorOutput(BlockState state, World world, BlockPos pos) { } public static final class BlockPlacerPlacementContext extends AutomaticItemPlacementContext { + // Shadows the variable facing in the superclass. + private final Direction facing; public BlockPlacerPlacementContext(World world, BlockPos pos, Direction facing, ItemStack stack, Direction side) { super(world, pos, facing, stack, side); + this.facing = facing; + } + + public Direction getPlayerLookDirection() { + return facing.getOpposite(); } // SlabBlocks cause a non-funny StackOverflowError