From 40b537501f39d12a69f8e8ceae7335562a082401 Mon Sep 17 00:00:00 2001 From: gnembon Date: Tue, 26 Jan 2021 05:32:59 -0400 Subject: [PATCH] reverting that merge of mixins since it will cause havoc on the future version branches --- ...tureBlockBlockEntity_fillUpdatesMixin.java | 35 +++++++++++++++++++ ...tructureBlockBlockEntity_limitsMixin.java} | 34 +++--------------- src/main/resources/carpet.mixins.json | 3 +- 3 files changed, 42 insertions(+), 30 deletions(-) create mode 100644 src/main/java/carpet/mixins/StructureBlockBlockEntity_fillUpdatesMixin.java rename src/main/java/carpet/mixins/{StructureBlockBlockEntityMixin.java => StructureBlockBlockEntity_limitsMixin.java} (56%) diff --git a/src/main/java/carpet/mixins/StructureBlockBlockEntity_fillUpdatesMixin.java b/src/main/java/carpet/mixins/StructureBlockBlockEntity_fillUpdatesMixin.java new file mode 100644 index 00000000..2832f969 --- /dev/null +++ b/src/main/java/carpet/mixins/StructureBlockBlockEntity_fillUpdatesMixin.java @@ -0,0 +1,35 @@ +package carpet.mixins; + +import carpet.CarpetSettings; +import net.minecraft.block.entity.StructureBlockBlockEntity; +import net.minecraft.structure.Structure; +import net.minecraft.structure.StructurePlacementData; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.ServerWorldAccess; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +import java.util.Random; + +@Mixin(StructureBlockBlockEntity.class) +public abstract class StructureBlockBlockEntity_fillUpdatesMixin +{ + @Redirect(method = "place", at = @At( + value = "INVOKE", + target = "Lnet/minecraft/structure/Structure;place(Lnet/minecraft/world/ServerWorldAccess;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/structure/StructurePlacementData;Ljava/util/Random;)V" + )) + private void onStructurePlacen(Structure structure, ServerWorldAccess serverWorldAccess, BlockPos pos, StructurePlacementData placementData, Random random) + { + if(!CarpetSettings.fillUpdates) + CarpetSettings.impendingFillSkipUpdates = true; + try + { + structure.place(serverWorldAccess, pos, placementData, random); + } + finally + { + CarpetSettings.impendingFillSkipUpdates = false; + } + } +} \ No newline at end of file diff --git a/src/main/java/carpet/mixins/StructureBlockBlockEntityMixin.java b/src/main/java/carpet/mixins/StructureBlockBlockEntity_limitsMixin.java similarity index 56% rename from src/main/java/carpet/mixins/StructureBlockBlockEntityMixin.java rename to src/main/java/carpet/mixins/StructureBlockBlockEntity_limitsMixin.java index 402d0bba..c676ae56 100644 --- a/src/main/java/carpet/mixins/StructureBlockBlockEntityMixin.java +++ b/src/main/java/carpet/mixins/StructureBlockBlockEntity_limitsMixin.java @@ -5,39 +5,15 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.block.Block; import net.minecraft.block.entity.StructureBlockBlockEntity; -import net.minecraft.structure.Structure; -import net.minecraft.structure.StructurePlacementData; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.ServerWorldAccess; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.*; - -import java.util.Random; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Constant; +import org.spongepowered.asm.mixin.injection.ModifyArg; +import org.spongepowered.asm.mixin.injection.ModifyConstant; @Mixin(StructureBlockBlockEntity.class) -public abstract class StructureBlockBlockEntityMixin +public abstract class StructureBlockBlockEntity_limitsMixin { - @Redirect(method = "place", at = @At( - value = "INVOKE", - target = "Lnet/minecraft/structure/Structure;place(Lnet/minecraft/world/ServerWorldAccess;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/structure/StructurePlacementData;Ljava/util/Random;)V" - )) - private void onStructurePlacen(Structure structure, ServerWorldAccess serverWorldAccess, BlockPos pos, StructurePlacementData placementData, Random random) - { - if(!CarpetSettings.fillUpdates) - CarpetSettings.impendingFillSkipUpdates = true; - try - { - structure.place(serverWorldAccess, pos, placementData, random); - } - finally - { - CarpetSettings.impendingFillSkipUpdates = false; - } - } - - @ModifyConstant( method = "fromTag", constant = @Constant(intValue = 48) diff --git a/src/main/resources/carpet.mixins.json b/src/main/resources/carpet.mixins.json index 505ed74a..bcbf958c 100644 --- a/src/main/resources/carpet.mixins.json +++ b/src/main/resources/carpet.mixins.json @@ -17,7 +17,8 @@ "BlockStateArgument_fillUpdatesMixin", "World_fillUpdatesMixin", "WorldChunk_fillUpdatesMixin", - "StructureBlockBlockEntityMixin", + "StructureBlockBlockEntity_fillUpdatesMixin", + "StructureBlockBlockEntity_limitsMixin", "UpdateStructureBlockC2SPacketMixin", "Structure_fillUpdatesMixin", "ServerPlayNetworkHandler_interactionUpdatesMixin",