diff --git a/dependencies.gradle b/dependencies.gradle index a966b8a..19c61a2 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -40,6 +40,9 @@ dependencies { //Biomes O' Plenty 2.1.0.2308 compile(deobfCurse("biomesoplenty-220318:2499612")) + //Biome Tweaker 2.0.182 + compileOnly(deobfCurse("biometweaker-228895:2279911")) + //Biome Wand 1.1.9 //Mirrored at: https://maven.falsepattern.com/mirror/mirror/1.7.10-Biome-Wand-1.1.9.jar compile(deobf("https://spacechase0.com/wp-content/uploads/2014/10/1.7.10-Biome-Wand-1.1.9.jar")) diff --git a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biometweaker/BiomeEventHandlerMixin.java b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biometweaker/BiomeEventHandlerMixin.java new file mode 100644 index 0000000..2cf2eb3 --- /dev/null +++ b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biometweaker/BiomeEventHandlerMixin.java @@ -0,0 +1,54 @@ +package com.falsepattern.endlessids.mixin.mixins.common.biometweaker; + +import com.falsepattern.endlessids.constants.ExtendedConstants; +import com.falsepattern.endlessids.constants.VanillaConstants; +import me.superckl.biometweaker.common.handler.BiomeEventHandler; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Mutable; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Constant; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.ModifyConstant; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.Arrays; + +@Mixin(value = BiomeEventHandler.class, + remap = false) +public abstract class BiomeEventHandlerMixin { + @Mutable + @Shadow + @Final + private int[] colorCache; + + @ModifyConstant(method = "", + constant = @Constant(intValue = VanillaConstants.biomeIDCount), + require = 1) + private static int extendIDs1(int constant) { + return ExtendedConstants.biomeIDCount; + } + + @Inject(method = "", + at = @At("RETURN"), + require = 1) + private void extendIDs2(CallbackInfo ci) { + colorCache = new int[ExtendedConstants.biomeIDCount * 3]; + Arrays.fill(colorCache, -2); + } + + @ModifyConstant(method = "onGetFoliageColor", + constant = @Constant(intValue = VanillaConstants.biomeIDCount), + require = 1) + private static int extendIDs3(int constant) { + return ExtendedConstants.biomeIDCount; + } + + @ModifyConstant(method = "onGetWaterColor", + constant = @Constant(intValue = VanillaConstants.biomeIDCount * 2), + require = 1) + private static int extendIDs4(int constant) { + return ExtendedConstants.biomeIDCount * 2; + } +} diff --git a/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java b/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java index 636ee83..e4d33f3 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java @@ -98,6 +98,9 @@ public enum Mixin implements IMixin { ChunkProviderBOPEndMixin(Side.COMMON, require(TargetedMod.BOP), "bop.ChunkProviderBOPEndMixin"), ChunkProviderBOPHellMixin(Side.COMMON, require(TargetedMod.BOP), "bop.ChunkProviderBOPHellMixin"), //endregion BoP->common + //region BiomeTweaker->common + BiomeEventHandlerMixin(Side.COMMON, require(TargetedMod.BIOMETWEAKER), "biometweaker.BiomeEventHandlerMixin"), + //endregion BiomeTweaker->common //region Biome Wand //region Biome Wand->client BiomeWandItemClientMixin(Side.CLIENT, require(TargetedMod.BIOMEWAND), "biomewand.BiomeWandItemMixin"), diff --git a/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java b/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java index 7f33037..7ee26c0 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java @@ -17,6 +17,7 @@ public enum TargetedMod implements ITargetedMod { ANTIIDCONFLICT("Anti ID Conflict", true, startsWith("antiidconflict")), ATUM("Atum", true, startsWith("atum-")), BOP("Biomes O' Plenty", true, startsWith("biomesoplenty-")), + BIOMETWEAKER("Biome Tweaker", true, startsWith("biometweaker-")), BIOMEWAND("Biome Wand", true, startsWith("1.7.10-biome-wand-").or(startsWith("biome-wand"))), COFHLIB("CoFH Lib", true, startsWith("cofhlib-")), DARKWORLD("Dark World", true, startsWith("darkworld-")),