diff --git a/README.MD b/README.MD index 20ff4e5..caa1694 100644 --- a/README.MD +++ b/README.MD @@ -58,6 +58,7 @@ This mod also contains patches for the following mods: - Erebus - Extra Planets - Extra Utilities +- Factorization - Futurepack - GalactiCraft - Highlands diff --git a/build.gradle.kts b/build.gradle.kts index 5a9b07e..f720878 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -56,6 +56,7 @@ minecraft_fp { repositories { cursemavenEX() + modrinthEX() exclusive(mavenpattern(), "com.falsepattern") exclusive(ivy("mavenpattern_mirror", "https://mvn.falsepattern.com/releases/mirror/", "[orgPath]/[artifact]-[revision].[ext]"), "mirror", "mirror.micdoodle") exclusive(ivy("github", "https://github.com/", "[orgPath]/releases/download/[revision]/[artifact]-[revision].[ext]"), "CannibalVox.DimDoors") @@ -148,6 +149,9 @@ dependencies { //Extra Utilities 1.2.12 compileOnly(deobfCurse("extrautilities-225561:2264384")) + //Factorization 0.8.109 + compileOnly(deobfModrinth("factorization:0.8.109")) + //Futurepack v18.7 compileOnly(deobfCurse("futurepack-237333:2263966")) diff --git a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/factorization/HammerChunkProviderMixin.java b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/factorization/HammerChunkProviderMixin.java new file mode 100644 index 0000000..bd8e1dd --- /dev/null +++ b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/factorization/HammerChunkProviderMixin.java @@ -0,0 +1,44 @@ +/* + * EndlessIDs + * + * Copyright (C) 2022-2024 FalsePattern + * All Rights Reserved + * + * The above copyright notice, this permission notice and the words "MEGA" + * shall be included in all copies or substantial portions of the Software. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + +package com.falsepattern.endlessids.mixin.mixins.common.biome.factorization; + +import com.falsepattern.endlessids.mixin.helpers.BiomePatchHelper; +import factorization.fzds.HammerChunkProvider; +import org.spongepowered.asm.mixin.Mixin; +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(HammerChunkProvider.class) +public abstract class HammerChunkProviderMixin { + @Redirect(method = "provideChunk", + at = @At(value = "INVOKE", + target = "Lnet/minecraft/world/chunk/Chunk;getBiomeArray()[B"), + require = 1) + private byte[] setBiomesTweaked(Chunk instance) { + return BiomePatchHelper.getBiomeArrayTweaked(instance, i -> BiomeGenBase.plains); + } +} 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 1017c9f..67bdfd6 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java @@ -141,6 +141,9 @@ public enum Mixin implements IMixin { //region ExtraUtilities ChunkProviderEndOfTimeMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.EXTRAUTILITIES)), "biome.extrautilities.ChunkProviderEndOfTimeMixin"), //endregion ExtraUtilities + //region Factorization + HammerChunkProviderMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.FACTORIZATION)), "biome.factorization.HammerChunkProviderMixin"), + //endregion //region Futurepack FuturepackBiomeGenSpaceMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.FUTUREPACK)), "biome.futurepack.BiomeGenSpaceMixin"), //endregion Futurepack 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 b7bff7b..2af36d5 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java @@ -54,6 +54,7 @@ public enum TargetedMod implements ITargetedMod { EREBUS("The Erebus", false, contains("theerebus")), EXTRAPLANETS("Extra Planets", false, contains("extraplanets-")), EXTRAUTILITIES("Extra Utilities", false, contains("extrautilities-")), + FACTORIZATION("Factorization", false, contains("factorization-")), FUTUREPACK("Futurepack", false, contains("futurepack")), GALACTICRAFTCORE("GalactiCraftCore", false, contains("galacticraftcore")), GALAXYSPACE("GalaxySpace", false, contains("galaxyspace-")),