From ddddfa1492b031e7519c2772d2bb4a8e5457d31b Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 30 Nov 2021 21:55:35 +0100 Subject: [PATCH] Fixed some mixins --- src/main/java/ru/bclib/api/BiomeAPI.java | 1 - .../ru/bclib/mixin/common/BiomeMixin.java | 28 ------------------- .../mixin/common/ChunkGeneratorMixin.java | 26 +++++++++++++++++ .../mixin/common/WorldGenRegionMixin.java | 4 +-- src/main/resources/bclib.mixins.common.json | 2 +- 5 files changed, 29 insertions(+), 32 deletions(-) delete mode 100644 src/main/java/ru/bclib/mixin/common/BiomeMixin.java create mode 100644 src/main/java/ru/bclib/mixin/common/ChunkGeneratorMixin.java diff --git a/src/main/java/ru/bclib/api/BiomeAPI.java b/src/main/java/ru/bclib/api/BiomeAPI.java index 4cd48391..e6bc49c6 100644 --- a/src/main/java/ru/bclib/api/BiomeAPI.java +++ b/src/main/java/ru/bclib/api/BiomeAPI.java @@ -7,7 +7,6 @@ import com.google.common.collect.Maps; import com.google.common.collect.Sets; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.fabricmc.fabric.impl.biome.InternalBiomeData; import net.fabricmc.fabric.impl.biome.NetherBiomeData; import net.fabricmc.fabric.impl.biome.TheEndBiomeData; import net.fabricmc.fabric.mixin.biome.modification.GenerationSettingsAccessor; diff --git a/src/main/java/ru/bclib/mixin/common/BiomeMixin.java b/src/main/java/ru/bclib/mixin/common/BiomeMixin.java deleted file mode 100644 index 26f16bcb..00000000 --- a/src/main/java/ru/bclib/mixin/common/BiomeMixin.java +++ /dev/null @@ -1,28 +0,0 @@ -package ru.bclib.mixin.common; - -import net.minecraft.core.BlockPos; -import net.minecraft.server.level.WorldGenRegion; -import net.minecraft.world.level.StructureFeatureManager; -import net.minecraft.world.level.biome.Biome; -import net.minecraft.world.level.chunk.ChunkGenerator; -import net.minecraft.world.level.levelgen.WorldgenRandom; -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.ModifyArg; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(Biome.class) -public class BiomeMixin { - private int bclib_featureIteratorSeed; - - @ModifyArg(method = "generate", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/levelgen/WorldgenRandom;setFeatureSeed(JII)J")) - private long bclib_updateFeatureSeed(long seed) { - return Long.rotateRight(seed, bclib_featureIteratorSeed++); - } - - @Inject(method = "generate", at = @At("HEAD")) - private void bclib_obBiomeGenerate(StructureFeatureManager structureFeatureManager, ChunkGenerator chunkGenerator, WorldGenRegion worldGenRegion, long l, WorldgenRandom worldgenRandom, BlockPos blockPos, CallbackInfo info) { - bclib_featureIteratorSeed = 0; - } -} diff --git a/src/main/java/ru/bclib/mixin/common/ChunkGeneratorMixin.java b/src/main/java/ru/bclib/mixin/common/ChunkGeneratorMixin.java new file mode 100644 index 00000000..9c6058ac --- /dev/null +++ b/src/main/java/ru/bclib/mixin/common/ChunkGeneratorMixin.java @@ -0,0 +1,26 @@ +package ru.bclib.mixin.common; + +import net.minecraft.world.level.StructureFeatureManager; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkAccess; +import net.minecraft.world.level.chunk.ChunkGenerator; +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.ModifyArg; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(ChunkGenerator.class) +public class ChunkGeneratorMixin { + private int bclib_featureIteratorSeed; + + @ModifyArg(method = "applyBiomeDecoration", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/levelgen/WorldgenRandom;setFeatureSeed(JII)V")) + private long bclib_updateFeatureSeed(long seed) { + return Long.rotateRight(seed, bclib_featureIteratorSeed++); + } + + @Inject(method = "applyBiomeDecoration", at = @At("HEAD")) + private void bclib_obBiomeGenerate(WorldGenLevel worldGenLevel, ChunkAccess chunkAccess, StructureFeatureManager structureFeatureManager, CallbackInfo ci) { + bclib_featureIteratorSeed = 0; + } +} diff --git a/src/main/java/ru/bclib/mixin/common/WorldGenRegionMixin.java b/src/main/java/ru/bclib/mixin/common/WorldGenRegionMixin.java index a8866f3e..08cde84d 100644 --- a/src/main/java/ru/bclib/mixin/common/WorldGenRegionMixin.java +++ b/src/main/java/ru/bclib/mixin/common/WorldGenRegionMixin.java @@ -2,7 +2,7 @@ package ru.bclib.mixin.common; import net.minecraft.core.BlockPos; import net.minecraft.server.level.WorldGenRegion; -import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.chunk.ChunkAccess; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -14,7 +14,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; public class WorldGenRegionMixin { @Final @Shadow - private ChunkPos center; + private ChunkAccess center; @Inject(method = "ensureCanWrite", at = @At("HEAD"), cancellable = true) private void be_alterBlockCheck(BlockPos blockPos, CallbackInfoReturnable info) { diff --git a/src/main/resources/bclib.mixins.common.json b/src/main/resources/bclib.mixins.common.json index 6ed5ea26..5e03cbe7 100644 --- a/src/main/resources/bclib.mixins.common.json +++ b/src/main/resources/bclib.mixins.common.json @@ -6,7 +6,7 @@ "mixins": [ "AnvilBlockMixin", "AnvilMenuMixin", - "BiomeMixin", + "ChunkGeneratorMixin", "BoneMealItemMixin", "ChunkBiomeContainerMixin", "ComposterBlockAccessor",