BOP fixes

This commit is contained in:
FalsePattern committed 2022-07-10 23:39:53 +02:00
1 parent 3b85cf7db5
commit 9d24a015ff
4 files changed
+79 -2

No files matched your search

@@ -9,7 +9,7 @@ import org.spongepowered.asm.mixin.injection.ModifyConstant;
@Mixin(value = BOPBiomeManager.class,
remap = false)
public abstract class BoPBiomeManagerMixin {
public abstract class BOPBiomeManagerMixin {
@ModifyConstant(method = "getNextFreeBiomeId",
constant = @Constant(intValue = VanillaConstants.biomeIDCount),
require = 1)
@@ -0,0 +1,27 @@
package com.falsepattern.endlessids.mixin.mixins.common.bop;
import biomesoplenty.common.world.ChunkProviderBOPEnd;
import com.falsepattern.endlessids.mixin.helpers.BiomePatchHelper;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.chunk.Chunk;
@Mixin(value = ChunkProviderBOPEnd.class,
remap = false)
public abstract class ChunkProviderBOPEndMixin {
@Shadow private BiomeGenBase[] biomesForGeneration;
@Redirect(method = "provideChunk",
at = @At(value = "INVOKE",
target = "Lnet/minecraft/world/chunk/Chunk;getBiomeArray()[B",
remap = true),
remap = true,
require = 1)
private byte[] setBiomesTweaked(Chunk chunk) {
return BiomePatchHelper.getBiomeArrayTweaked(chunk, biomesForGeneration);
}
}
@@ -0,0 +1,48 @@
package com.falsepattern.endlessids.mixin.mixins.common.bop;
import biomesoplenty.common.world.ChunkProviderBOPHell;
import com.falsepattern.endlessids.mixin.helpers.BiomePatchHelper;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
import net.minecraft.block.Block;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.chunk.Chunk;
@Mixin(value = ChunkProviderBOPHell.class,
remap = false)
public abstract class ChunkProviderBOPHellMixin {
private BiomeGenBase[] bgb;
@Inject(method = "provideChunk",
at = @At(value = "INVOKE",
target = "Lnet/minecraft/world/chunk/Chunk;getBiomeArray()[B",
shift = At.Shift.BEFORE,
remap = true),
locals = LocalCapture.CAPTURE_FAILHARD,
remap = true,
require = 1)
private void setBiomesTweaked1(int par1, int par2, CallbackInfoReturnable<Chunk> cir, byte[] abyte, Block[] blocks, Chunk chunk, BiomeGenBase[] abiomegenbase) {
bgb = abiomegenbase;
}
@Redirect(method = "provideChunk",
at = @At(value = "INVOKE",
target = "Lnet/minecraft/world/chunk/Chunk;getBiomeArray()[B",
remap = true),
remap = true,
require = 1)
private byte[] setBiomesTweaked2(Chunk chunk) {
try {
return BiomePatchHelper.getBiomeArrayTweaked(chunk, bgb);
} finally {
bgb = null;
}
}
}
@@ -81,7 +81,9 @@ public enum Mixin implements IMixin {
ATGWorldGenRocksMixin(Side.COMMON, require(TargetedMod.ATG), "atg.ATGWorldGenRocksMixin"),
//endregion ATG->common
//region BoP->common
BoPBiomeManagerMixin(Side.COMMON, require(TargetedMod.BOP), "bop.BoPBiomeManagerMixin"),
BOPBiomeManagerMixin(Side.COMMON, require(TargetedMod.BOP), "bop.BOPBiomeManagerMixin"),
ChunkProviderBOPEndMixin(Side.COMMON, require(TargetedMod.BOP), "bop.ChunkProviderBOPEndMixin"),
ChunkProviderBOPHellMixin(Side.COMMON, require(TargetedMod.BOP), "bop.ChunkProviderBOPHellMixin"),
//endregion BoP->common
//region CoFHLib->common
CoFHLibCofhBlockHelperMixin(Side.COMMON, require(TargetedMod.COFHLIB), "cofhlib.BlockHelperMixin"),