mirror of
https://github.com/GTMEGA/EndlessIDs.git
synced 2026-11-12 13:07:34 +00:00
BOP fixes
This commit is contained in:
4 files changed
+79
-2
No files matched your search
+1
-1
@@ -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)
|
||||
+27
@@ -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);
|
||||
}
|
||||
}
|
||||
+48
@@ -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"),
|
||||
|
||||
Reference in new issue
Block a user