From 8416a2f28b97e163ebf5f31365ed2e30b3c95f3c Mon Sep 17 00:00:00 2001 From: altrisi Date: Tue, 1 Aug 2023 13:39:00 +0200 Subject: [PATCH] Tweaks on top of #1775 Make new interface not have default methods, make `Shadow` body throw and tiny style changes --- .../java/carpet/fakes/BlockPistonBehaviourInterface.java | 8 ++------ .../java/carpet/mixins/ChestBlock_customStickyMixin.java | 2 +- .../mixins/PistonStructureResolver_customStickyMixin.java | 8 +++++--- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/main/java/carpet/fakes/BlockPistonBehaviourInterface.java b/src/main/java/carpet/fakes/BlockPistonBehaviourInterface.java index d65ea525..b88bf630 100644 --- a/src/main/java/carpet/fakes/BlockPistonBehaviourInterface.java +++ b/src/main/java/carpet/fakes/BlockPistonBehaviourInterface.java @@ -15,14 +15,10 @@ public interface BlockPistonBehaviourInterface { /** * @return whether this block is sticky in any way when moved by pistons */ - default boolean isSticky(BlockState state) { - return false; - } + boolean isSticky(BlockState state); /** * @return whether the neighboring block is pulled along if this block is moved by pistons */ - default boolean isStickyToNeighbor(Level level, BlockPos pos, BlockState state, BlockPos neighborPos, BlockState neighborState, Direction dir, Direction moveDir) { - return false; - } + boolean isStickyToNeighbor(Level level, BlockPos pos, BlockState state, BlockPos neighborPos, BlockState neighborState, Direction dir, Direction moveDir); } diff --git a/src/main/java/carpet/mixins/ChestBlock_customStickyMixin.java b/src/main/java/carpet/mixins/ChestBlock_customStickyMixin.java index 271a3b1c..b3148361 100644 --- a/src/main/java/carpet/mixins/ChestBlock_customStickyMixin.java +++ b/src/main/java/carpet/mixins/ChestBlock_customStickyMixin.java @@ -1,9 +1,9 @@ package carpet.mixins; -import carpet.fakes.BlockPistonBehaviourInterface; import org.spongepowered.asm.mixin.Mixin; import carpet.CarpetSettings; +import carpet.fakes.BlockPistonBehaviourInterface; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/carpet/mixins/PistonStructureResolver_customStickyMixin.java b/src/main/java/carpet/mixins/PistonStructureResolver_customStickyMixin.java index 9d868980..88ab4fd8 100644 --- a/src/main/java/carpet/mixins/PistonStructureResolver_customStickyMixin.java +++ b/src/main/java/carpet/mixins/PistonStructureResolver_customStickyMixin.java @@ -19,12 +19,14 @@ import net.minecraft.world.level.block.piston.PistonStructureResolver; import net.minecraft.world.level.block.state.BlockState; @Mixin(PistonStructureResolver.class) -public abstract class PistonStructureResolver_customStickyMixin { +public class PistonStructureResolver_customStickyMixin { @Shadow @Final private Level level; @Shadow @Final private Direction pushDirection; - @Shadow private static boolean canStickToEachOther(BlockState blockState, BlockState blockState2) { return false; } + @Shadow private static boolean canStickToEachOther(BlockState blockState, BlockState blockState2) { + throw new AssertionError(); + } @Inject( method = "isSticky", @@ -34,7 +36,7 @@ public abstract class PistonStructureResolver_customStickyMixin { ) ) private static void isSticky(BlockState state, CallbackInfoReturnable cir) { - if(state.getBlock() instanceof BlockPistonBehaviourInterface behaviourInterface){ + if (state.getBlock() instanceof BlockPistonBehaviourInterface behaviourInterface){ cir.setReturnValue(behaviourInterface.isSticky(state)); } }