diff --git a/README.MD b/README.MD index 547d5f5..cfc535c 100644 --- a/README.MD +++ b/README.MD @@ -75,6 +75,7 @@ This mod also contains patches for the following mods: - Realistic World Generation - Thaumcraft - The Lord of the Rings Mod: Legacy +- ThutCore/ThutMods - Tropicraft - Twilight Forest - Underground Biomes Constructs diff --git a/dependencies.gradle b/dependencies.gradle index 11524a7..6f53a76 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -151,6 +151,10 @@ dependencies { //Thaumcraft 4.2.3.5 compileOnly(deobfCurse("thaumcraft-223628:2227552")) + //ThutCore 2.0 + //Only available on dropbox + compileOnly(deobf("https://mvn.falsepattern.com/releases/mirror/mirror/thutcore-2.0.jar")) + //Tropicraft 6.0.5 //This is from a mirror file, because the file on curseforge is a zip containing other files too. //Source: https://www.curseforge.com/minecraft/mc-mods/tropicraft/files/2353906 diff --git a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/thut/Vector3Mixin.java b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/thut/Vector3Mixin.java new file mode 100644 index 0000000..249e139 --- /dev/null +++ b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/biome/thut/Vector3Mixin.java @@ -0,0 +1,44 @@ +package com.falsepattern.endlessids.mixin.mixins.common.biome.thut; + +import com.falsepattern.endlessids.mixin.helpers.ChunkBiomeHook; +import lombok.val; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; +import thut.api.maths.Vector3; + +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.chunk.Chunk; + +@Mixin(value = Vector3.class, + remap = false) +public abstract class Vector3Mixin { + + @Shadow public abstract int intX(); + + @Shadow public abstract int intZ(); + + /** + * @author FalsePattern + * @reason ID Extension + */ + @Overwrite + public void setBiome(BiomeGenBase biome, World worldObj) { + int x = this.intX(); + int z = this.intZ(); + Chunk chunk = worldObj.getChunkFromBlockCoords(x, z); + val chunkHook = (ChunkBiomeHook) chunk; + short[] biomes = chunkHook.getBiomeShortArray(); + short newBiome = (short)biome.biomeID; + int chunkX = Math.abs(x & 15); + int chunkZ = Math.abs(z & 15); + int point = chunkX + 16 * chunkZ; + if (biomes[point] != newBiome) { + biomes[point] = newBiome; + chunkHook.setBiomeShortArray(biomes); + chunk.setChunkModified(); + } + + } +} 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 cde4511..a2e502b 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java @@ -159,6 +159,9 @@ public enum Mixin implements IMixin { //region Thaumcraft ThaumcraftUtilsMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.THAUMCRAFT)), "biome.thaumcraft.UtilsMixin"), //endregion Thaumcraft + //region ThutCore + ThutVector3Mixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.THUTCORE)), "biome.thut.Vector3Mixin"), + //endregion ThutCore //region Tropicraft GenLayerTropiVoronoiZoomMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.TROPICRAFT)), "biome.tropicraft.GenLayerTropiVoronoiZoomMixin"), //endregion Tropicraft 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 19021c0..ea54889 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java @@ -48,6 +48,7 @@ public enum TargetedMod implements ITargetedMod { RTG("Realistic Terrain Generation", false, startsWith("rtg-")), RWG("Realistic World Gen", false, startsWith("rwg-")), THAUMCRAFT("Thaumcraft", false, startsWith("thaumcraft")), + THUTCORE("ThutCore", false, startsWith("thutcore-").or(startsWith("thutmods-"))), TROPICRAFT("Tropicraft", false, startsWith("tropicraft-")), TWILIGHTFOREST("Twilight Forest", false, startsWith("twilightforest")), UBC("Underground Biomes Constructs", false, startsWith("undergroundbiomesconstructs-")),