From 76fdd169069688d5cbe8c9e73dedbd4e6d09ec8f Mon Sep 17 00:00:00 2001 From: FalsePattern Date: Mon, 9 Jun 2025 17:26:08 +0200 Subject: [PATCH] AtomicStryker's Ruins mod compat #186 #93 --- README.MD | 1 + build.gradle.kts | 3 ++ .../common/biome/ruins/FileHandlerMixin.java | 40 ++++++++++++++++ .../common/biome/ruins/LoaderThreadMixin.java | 40 ++++++++++++++++ .../biome/ruins/RuinGeneratorMixin.java | 46 +++++++++++++++++++ .../endlessids/mixin/plugin/Mixin.java | 5 ++ .../endlessids/mixin/plugin/TargetedMod.java | 1 + 7 files changed, 136 insertions(+) create mode 100644 src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/ruins/FileHandlerMixin.java create mode 100644 src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/ruins/LoaderThreadMixin.java create mode 100644 src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/ruins/RuinGeneratorMixin.java diff --git a/README.MD b/README.MD index 7643cb5..f0b87ef 100644 --- a/README.MD +++ b/README.MD @@ -96,6 +96,7 @@ This mod also contains patches for the following mods: - Restructured - Realistic Terrain Generation - Realistic World Generation +- Ruins - Thaumcraft - The Lord of the Rings Mod: Legacy - The Mists of RioV diff --git a/build.gradle.kts b/build.gradle.kts index 5e34ebd..689f274 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -211,6 +211,9 @@ dependencies { //Restructured 1.0.4.2 compileOnly(deobfCurse("restructured-230570:2276784")) + //Ruins (AtomicStryker) 15.4 nbtfix + compileOnly(deobf("mirror:Ruins:1.7.10")) + //TARDIS Mod 0.995 compileOnly(deobfCurse("tardismod-230170:2305503")) diff --git a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/ruins/FileHandlerMixin.java b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/ruins/FileHandlerMixin.java new file mode 100644 index 0000000..8bb0862 --- /dev/null +++ b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/ruins/FileHandlerMixin.java @@ -0,0 +1,40 @@ +/* + * EndlessIDs + * + * Copyright (C) 2022-2025 FalsePattern, The MEGA Team + * All Rights Reserved + * + * The above copyright notice, this permission notice and the word "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, only version 3 of the License. + * + * 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 Lesser 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.ruins; + +import atomicstryker.ruins.common.FileHandler; +import atomicstryker.ruins.common.RuinsMod; +import com.falsepattern.endlessids.constants.ExtendedConstants; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.Constant; +import org.spongepowered.asm.mixin.injection.ModifyConstant; + +@Mixin(FileHandler.class) +public class FileHandlerMixin { + @ModifyConstant(method = "useGeneric", + constant = {@Constant(intValue = RuinsMod.BIOME_NONE)}, + remap = false) + private int extendBiomeNone(int constant) { + return constant - RuinsMod.BIOME_NONE + ExtendedConstants.biomeIDCount; + } +} diff --git a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/ruins/LoaderThreadMixin.java b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/ruins/LoaderThreadMixin.java new file mode 100644 index 0000000..622efc9 --- /dev/null +++ b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/ruins/LoaderThreadMixin.java @@ -0,0 +1,40 @@ +/* + * EndlessIDs + * + * Copyright (C) 2022-2025 FalsePattern, The MEGA Team + * All Rights Reserved + * + * The above copyright notice, this permission notice and the word "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, only version 3 of the License. + * + * 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 Lesser 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.ruins; + +import atomicstryker.ruins.common.RuinsMod; +import com.falsepattern.endlessids.constants.ExtendedConstants; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.Constant; +import org.spongepowered.asm.mixin.injection.ModifyConstant; + +@Mixin(targets = "atomicstryker.ruins.common.FileHandler$LoaderThread") +public abstract class LoaderThreadMixin extends Thread { + @ModifyConstant(method = "run", + constant = {@Constant(intValue = RuinsMod.BIOME_NONE), + @Constant(intValue = RuinsMod.BIOME_NONE + 1)}, + remap = false) + private int extendBiomeNone(int constant) { + return constant - RuinsMod.BIOME_NONE + ExtendedConstants.biomeIDCount; + } +} diff --git a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/ruins/RuinGeneratorMixin.java b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/ruins/RuinGeneratorMixin.java new file mode 100644 index 0000000..4d7c69b --- /dev/null +++ b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/ruins/RuinGeneratorMixin.java @@ -0,0 +1,46 @@ +/* + * EndlessIDs + * + * Copyright (C) 2022-2025 FalsePattern, The MEGA Team + * All Rights Reserved + * + * The above copyright notice, this permission notice and the word "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, only version 3 of the License. + * + * 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 Lesser 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.ruins; + +import atomicstryker.ruins.common.RuinGenerator; +import atomicstryker.ruins.common.RuinsMod; +import com.falsepattern.endlessids.constants.ExtendedConstants; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.Constant; +import org.spongepowered.asm.mixin.injection.ModifyConstant; + +@Mixin(RuinGenerator.class) +public abstract class RuinGeneratorMixin { + @ModifyConstant(method = "createBuilding", + constant = {@Constant(intValue = RuinsMod.BIOME_NONE)}, + remap = false) + private int extendBiomeNone(int constant) { + return constant - RuinsMod.BIOME_NONE + ExtendedConstants.biomeIDCount; + } + @ModifyConstant(method = "printStats", + constant = {@Constant(intValue = RuinsMod.BIOME_NONE)}, + remap = false) + private int extendBiomeNone2(int constant) { + return constant - RuinsMod.BIOME_NONE + ExtendedConstants.biomeIDCount; + } +} 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 22c1d4c..b45ecb3 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java @@ -75,6 +75,7 @@ import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.OWG; import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.RANDOMTHINGS; import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.RESTRUCTURED; import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.RTG; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.RUINS; import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.RWG; import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.TARDIS; import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.THAUMCRAFT; @@ -226,6 +227,10 @@ public class Mixin { biome_rtg_LandscapeGeneratorMixin(EXT_BIOME, require(RTG)), biome_rtg_WorldChunkManagerRTGMixin(EXT_BIOME, require(RTG)), + biome_ruins_FileHandlerMixin(EXT_BIOME, require(RUINS)), + biome_ruins_LoaderThreadMixin(EXT_BIOME, require(RUINS)), + biome_ruins_RuinGeneratorMixin(EXT_BIOME, require(RUINS)), + biome_rwg_ChunkGeneratorRealisticMixin(EXT_BIOME, require(RWG)), biome_rwg_RealisticBiomeBaseMixin(EXT_BIOME, require(RWG)), biome_rwg_VillageMaterialsMixin(EXT_BIOME, require(RWG)), 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 75c072f..ccaca6e 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java @@ -74,6 +74,7 @@ public enum TargetedMod implements ITargetedMod { NOMADICTENTS("Nomadic Tents", false, contains("nomadictents")), OWG("Nostalgic world generation", false, contains("owg-").or(contains("nostalgiagenerator-"))), RANDOMTHINGS("Random Things", false, contains("randomthings-")), + RUINS("Ruins", false, contains("ruins-")), RESTRUCTURED("Restructured", false, contains("restructured-")), RTG("Realistic Terrain Generation", false, contains("rtg-")), RWG("Realistic World Gen", false, contains("rwg-")),