From 786652504cf8bfed9e0686b145baf6e847dcb940 Mon Sep 17 00:00:00 2001 From: FalsePattern <30945458+FalsePattern@users.noreply.github.com> Date: Sun, 2 Apr 2023 12:50:42 +0200 Subject: [PATCH] DimDoors compat (#111) --- README.MD | 1 + dependencies.gradle | 3 ++ .../biome/dimdoors/DDBiomeGenBaseMixin.java | 31 +++++++++++++++++++ .../endlessids/mixin/plugin/Mixin.java | 3 ++ .../endlessids/mixin/plugin/TargetedMod.java | 1 + 5 files changed, 39 insertions(+) create mode 100644 src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/dimdoors/DDBiomeGenBaseMixin.java diff --git a/README.MD b/README.MD index f6e5ab9..ec400bf 100644 --- a/README.MD +++ b/README.MD @@ -30,6 +30,7 @@ This mod also contains patches for the following mods: - Compact Machines - CoFH Lib - Dark World +- Dimensional Doors - DragonAPI - Dynamic Surroundings - Enderlicious diff --git a/dependencies.gradle b/dependencies.gradle index 930dee2..4fb34a2 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -70,6 +70,9 @@ dependencies { //Dark World 0.2 compileOnly(deobfCurse("darkworld-225075:2225172")) + //DimDoors 2.2.5-test9 + compileOnly(deobf("https://github.com/CannibalVox/DimDoors/releases/download/2.2.5-test9/DimensionalDoors-2.2.5-test9.jar")) + //DragonAPI V31b compileOnly(deobfCurse("dragonapi-235591:3574508")) diff --git a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/dimdoors/DDBiomeGenBaseMixin.java b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/dimdoors/DDBiomeGenBaseMixin.java new file mode 100644 index 0000000..eabd0a2 --- /dev/null +++ b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/dimdoors/DDBiomeGenBaseMixin.java @@ -0,0 +1,31 @@ +package com.falsepattern.endlessids.mixin.mixins.common.biome.dimdoors; + +import StevenDimDoors.mod_pocketDim.world.DDBiomeGenBase; +import com.falsepattern.endlessids.PlaceholderBiome; +import lombok.val; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; + +import net.minecraft.world.biome.BiomeGenBase; + +@Mixin(DDBiomeGenBase.class) +public abstract class DDBiomeGenBaseMixin extends BiomeGenBase { + private DDBiomeGenBaseMixin(int p_i1971_1_) { + super(p_i1971_1_); + } + + /** + * @author FalsePattern + * @reason Compat patch + */ + @Overwrite + public static void checkBiomes(int[] biomes) { + val arr = getBiomeGenArray(); + for(int k = 0; k < biomes.length; ++k) { + val b = arr[biomes[k]]; + if (b != null && !(b instanceof DDBiomeGenBase || b instanceof PlaceholderBiome)) { + throw new IllegalStateException("There is a biome ID conflict between a biome from Dimensional Doors and another biome type. Fix your configuration!"); + } + } + } +} 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 5773594..fedb10f 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java @@ -68,6 +68,9 @@ public enum Mixin implements IMixin { //region DarkWorld DarkWorldModBiomesMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.DARKWORLD)), "biome.darkworld.ModBiomesMixin"), //endregion DarkWorld + //region DimDoors + DDBiomeGenBaseMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.DIMDOORS)), "biome.dimdoors.DDBiomeGenBaseMixin"), + //endregion DimDoors //region DragonAPI DragonAPIGenLayerRiverMixVanillaMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.DRAGONAPI)), "biome.dragonapi.vanilla.GenLayerRiverMixMixin"), DragonAPIGenLayerRiverEventMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.DRAGONAPI)), "biome.dragonapi.GenLayerRiverEventMixin"), 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 377bf7b..5a37993 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java @@ -23,6 +23,7 @@ public enum TargetedMod implements ITargetedMod { COFHLIB("CoFH Lib", false, startsWith("cofhlib-")), COMPACTMACHINES("Compact Machines", false, startsWith("compactmachines-")), DARKWORLD("Dark World", false, startsWith("darkworld-")), + DIMDOORS("Dimensional Doors", false, startsWith("dimensionaldoors-").or(startsWith("dimdoors-"))), DRAGONAPI("DragonAPI", false, startsWith("dragonapi")), EB("Enhanced Biomes", false, startsWith("Enhanced Biomes").or(startsWith("enhancedbiomes"))), ENDERLICIOUS("Enderlicious", false, startsWith("enderlicious-")),