diff --git a/README.MD b/README.MD index 59730b3..2970feb 100644 --- a/README.MD +++ b/README.MD @@ -47,6 +47,7 @@ This mod also contains patches for the following mods: - Netherlicious - Nomadic Tents - Random Things +- Restructured - Realistic Terrain Generation - Realistic World Generation - Thaumcraft diff --git a/dependencies.gradle b/dependencies.gradle index 4fb34a2..144bd97 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -131,6 +131,9 @@ dependencies { //Realistic Terrain Generation 1.1.1.7 compileOnly(deobfCurse("rtg-237989:2521557")) + //Restructured 1.0.4.2 + implementation(deobfCurse("restructured-230570:2276784")) + //Thaumcraft 4.2.3.5 compileOnly(deobfCurse("thaumcraft-223628:2227552")) diff --git a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/restructured/BiomeHelperMixin.java b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/restructured/BiomeHelperMixin.java new file mode 100644 index 0000000..ff03ddd --- /dev/null +++ b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/restructured/BiomeHelperMixin.java @@ -0,0 +1,37 @@ +package com.falsepattern.endlessids.mixin.mixins.common.biome.restructured; + +import com.falsepattern.endlessids.mixin.helpers.IChunkMixin; +import org.blockartistry.mod.Restructured.world.BiomeHelper; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; + +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.chunk.Chunk; + +import java.util.Random; + +@Mixin(BiomeHelper.class) +public abstract class BiomeHelperMixin { + /** + * @author FalsePattern + * @reason Compat + */ + @Overwrite + public static BiomeGenBase chunkBiomeSurvey(World world, Chunk chunk, Random rand) { + short[] biomes = ((IChunkMixin)chunk).getBiomeShortArray(); + int[] counts = new int[biomes.length]; + int highIndex = BiomeGenBase.plains.biomeID; + int highCount = -1; + + for(int i = 0; i < 32; ++i) { + int id = biomes[rand.nextInt(biomes.length)] & 65535; + if (id != 65535 && ++counts[id] > highCount) { + highIndex = id; + highCount = counts[id]; + } + } + + return BiomeGenBase.getBiome(highIndex); + } +} 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 fedb10f..d6cabba 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java @@ -136,6 +136,9 @@ public enum Mixin implements IMixin { ItemBiomePainterMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.RANDOMTHINGS)), "biome.randomthings.ItemBiomePainterMixin"), MessagePaintBiomeMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.RANDOMTHINGS)), "biome.randomthings.MessagePaintBiomeMixin"), //endregion RandomThings + //region Restructured + RSBiomeHelperMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.RESTRUCTURED)), "biome.restructured.BiomeHelperMixin"), + //endregion Restructured //region RTG RTGChunkProviderRTGMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.RTG)), "biome.rtg.ChunkProviderRTGMixin"), RTGLandscapeGeneratorMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.RTG)), "biome.rtg.LandscapeGeneratorMixin"), 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 5a37993..708d7e3 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java @@ -41,6 +41,7 @@ public enum TargetedMod implements ITargetedMod { NETHERLICIOUS("Netherlicious", false, startsWith("netherlicious-")), NOMADICTENTS("Nomadic Tents", false, startsWith("nomadictents")), RANDOMTHINGS("Random Things", false, startsWith("randomthings-")), + RESTRUCTURED("Restructured", false, startsWith("restructured-")), RTG("Realistic Terrain Generation", false, startsWith("rtg-")), RWG("Realistic World Gen", false, startsWith("rwg-")), THAUMCRAFT("Thaumcraft", false, startsWith("thaumcraft")),