diff --git a/README.MD b/README.MD index b51ae22..6689ab1 100644 --- a/README.MD +++ b/README.MD @@ -28,6 +28,7 @@ This mod also contains patches for the following mods: - Dynamic Surroundings - Erebus - Extra Utilities +- Futurepack - GalactiCraft - Immersive Cavegen - More Fun Quicksand Mod diff --git a/dependencies.gradle b/dependencies.gradle index 862cbc7..4186b17 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -59,6 +59,9 @@ dependencies { //Extra Utilities 1.2.12 compile(curse("extrautilities-225561:2264384")) + //Futurepack v18.7 + compile(deobfCurse("futurepack-237333:2263966")) + //Galacticraft Core 3.0.12.504 //Mirrored at: https://maven.falsepattern.com/mirror/mirror/GalacticraftCore-1.7-3.0.12.504.jar compileOnly(deobf("https://micdoodle8.com/new-builds/GC-1.7/504/GalacticraftCore-1.7-3.0.12.504.jar")) diff --git a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/futurepack/ChunkProviderSpaceMixin.java b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/futurepack/ChunkProviderSpaceMixin.java new file mode 100644 index 0000000..7725683 --- /dev/null +++ b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/futurepack/ChunkProviderSpaceMixin.java @@ -0,0 +1,28 @@ +package com.falsepattern.endlessids.mixin.mixins.common.futurepack; + +import com.falsepattern.endlessids.mixin.helpers.BiomePatchHelper; +import futurepack.common.dim.ChunkProviderSpace; +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 = ChunkProviderSpace.class, + remap = false) +public abstract class ChunkProviderSpaceMixin { + @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); + } +} 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 ad47c42..0127c9a 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java @@ -126,6 +126,9 @@ public enum Mixin implements IMixin { ChunkProviderEndOfTimeMixin(Side.COMMON, require(TargetedMod.EXTRAUTILITIES), "extrautilities.ChunkProviderEndOfTimeMixin"), ChunkProviderUnderdarkMixin(Side.COMMON, require(TargetedMod.EXTRAUTILITIES), "extrautilities.ChunkProviderUnderdarkMixin"), //endregion ExtraUtilities->common + //region Futurepack->common + FuturepackChunkProviderSpaceMixin(Side.COMMON, require(TargetedMod.FUTUREPACK), "futurepack.ChunkProviderSpaceMixin"), + //endregion Futurepack->common //region GalactiCraftCore->common GalactiCraftCoreConfigManagerCoreMixin(Side.COMMON, require(TargetedMod.GALACTICRAFTCORE), "galacticraft.ConfigManagerCoreMixin"), 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 5d2b48e..e0aebc1 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java @@ -22,6 +22,7 @@ public enum TargetedMod implements ITargetedMod { DRAGONAPI("DragonAPI", false, startsWith("dragonapi")), EREBUS("The Erebus", true, startsWith("theerebus")), EXTRAUTILITIES("Extra Utilities", true, startsWith("extrautilities-")), + FUTUREPACK("Futurepack", true, startsWith("[1.7.10]futurepack").or(startsWith("futurepack-"))), GALACTICRAFTCORE("GalactiCraftCore", false, startsWith("galacticraftcore")), ICG("Immersive Cavegen", true, startsWith("immersivecavegen")), MFQM("More Fun Quicksand Mod", false, startsWith("morefunquicksandmod-")), diff --git a/src/main/java/com/falsepattern/endlessids/patching/CommonManager.java b/src/main/java/com/falsepattern/endlessids/patching/CommonManager.java index 287854a..4d96598 100644 --- a/src/main/java/com/falsepattern/endlessids/patching/CommonManager.java +++ b/src/main/java/com/falsepattern/endlessids/patching/CommonManager.java @@ -1,6 +1,7 @@ package com.falsepattern.endlessids.patching; import com.falsepattern.endlessids.EndlessIDs; +import com.falsepattern.endlessids.patching.patches.common.Futurepack; import com.falsepattern.endlessids.patching.patches.common.Tropicraft; import lombok.SneakyThrows; import lombok.val; @@ -15,6 +16,7 @@ public class CommonManager { public CommonManager() { patches.add(new Tropicraft()); + patches.add(new Futurepack()); } @SneakyThrows diff --git a/src/main/java/com/falsepattern/endlessids/patching/patches/common/Futurepack.java b/src/main/java/com/falsepattern/endlessids/patching/patches/common/Futurepack.java new file mode 100644 index 0000000..3202bc7 --- /dev/null +++ b/src/main/java/com/falsepattern/endlessids/patching/patches/common/Futurepack.java @@ -0,0 +1,15 @@ +package com.falsepattern.endlessids.patching.patches.common; + +import com.falsepattern.endlessids.patching.Patch; + +public class Futurepack extends Patch { + public Futurepack() { + super("fp"); + } + + @Override + public boolean init() throws Exception { + Class.forName("futurepack.common.dim.BiomeGenSpace"); + return true; + } +}