diff --git a/src/main/java/carpet/CarpetSettings.java b/src/main/java/carpet/CarpetSettings.java index 132c0c64..c76989f2 100644 --- a/src/main/java/carpet/CarpetSettings.java +++ b/src/main/java/carpet/CarpetSettings.java @@ -315,6 +315,9 @@ public class CarpetSettings ) public static boolean hopperCounters = false; + @Rule( desc = "Allows Budding Amethyst blocks to be moved by pistons", category = FEATURE ) + public static boolean movableAmethyst = false; + @Rule( desc = "Guardians turn into Elder Guardian when struck by lightning", category = FEATURE ) public static boolean renewableSponges = false; diff --git a/src/main/java/carpet/mixins/BuddingAmethystBlock_getPistonBehaviorMixin.java b/src/main/java/carpet/mixins/BuddingAmethystBlock_getPistonBehaviorMixin.java new file mode 100644 index 00000000..03085c47 --- /dev/null +++ b/src/main/java/carpet/mixins/BuddingAmethystBlock_getPistonBehaviorMixin.java @@ -0,0 +1,18 @@ +package carpet.mixins; + +import carpet.CarpetSettings; +import net.minecraft.block.BlockState; +import net.minecraft.block.BuddingAmethystBlock; +import net.minecraft.block.piston.PistonBehavior; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BuddingAmethystBlock.class) +public class BuddingAmethystBlock_getPistonBehaviorMixin { + @Inject(at = @At("HEAD"), method = "getPistonBehavior(Lnet/minecraft/block/BlockState;)Lnet/minecraft/block/piston/PistonBehavior;", cancellable = true) + void getPistonBehavior(BlockState state, CallbackInfoReturnable cir) { + if (CarpetSettings.movableAmethyst) cir.setReturnValue(PistonBehavior.NORMAL); + } +} diff --git a/src/main/resources/carpet.mixins.json b/src/main/resources/carpet.mixins.json index 4fdcaafd..f6f49e46 100644 --- a/src/main/resources/carpet.mixins.json +++ b/src/main/resources/carpet.mixins.json @@ -89,6 +89,7 @@ "ServerWorld_onePlayerSleepingMixin", "CoralBlockMixin", "CoralFeatureMixin", + "BuddingAmethystBlock_getPistonBehaviorMixin", "FluidBlock_renewableBlackstoneMixin", "FluidBlock_renewableDeepslateMixin", "LavaFluid_renewableDeepslateMixin",