diff --git a/README.MD b/README.MD index 64b732a..a191eca 100644 --- a/README.MD +++ b/README.MD @@ -14,6 +14,7 @@ This mod also contains patches for the following mods: - DragonAPI - GalactiCraft - More Fun Quicksand Mod +- Realistic Terrain Generation - Underground Biomes Constructs - WorldEdit diff --git a/dependencies.gradle b/dependencies.gradle index 2284663..b2dd3e0 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -16,5 +16,6 @@ dependencies { compile(deobfMaven(curseMaven, "curse.maven:antiidconflict-246288:2308279")) // 1.3.5 compile("curse.maven:atg-228356:2231155") // 0.12.0 compile(deobfMaven(curseMaven, "curse.maven:biomesoplenty-220318:2499612")) // 2.1.0.2308 + compile(deobfMaven(curseMaven, "curse.maven:rtg-237989:2521557")) // 1.1.1.7 compileOnly(files("lib/GalacticraftCore-1.7-3.0.12.504-deobf.jar")) } diff --git a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/rtg/ChunkProviderRTGMixin.java b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/rtg/ChunkProviderRTGMixin.java new file mode 100644 index 0000000..837f06f --- /dev/null +++ b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/rtg/ChunkProviderRTGMixin.java @@ -0,0 +1,44 @@ +package com.falsepattern.endlessids.mixin.mixins.common.rtg; + +import com.falsepattern.endlessids.mixin.helpers.IChunkMixin; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; +import rtg.world.gen.ChunkProviderRTG; + +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.chunk.Chunk; + +@Mixin(value = ChunkProviderRTG.class, + remap = false) +public abstract class ChunkProviderRTGMixin { + @Shadow private BiomeGenBase[] baseBiomesList; + + @Shadow private int[] xyinverted; + + @Redirect(method = "provideChunk", + at = @At(value = "INVOKE", + target = "Lnet/minecraft/world/chunk/Chunk;getBiomeArray()[B", + remap = true), + remap = true, + require = 1) + private byte[] redictBiomeArrayFillLogic(Chunk chunk) { + short[] biomes = ((IChunkMixin)chunk).getBiomeShortArray(); + + for(int i = 0; i < biomes.length; ++i) { + biomes[i] = (short) baseBiomesList[xyinverted[i]].biomeID; + } + return new byte[0]; + } + + @Redirect(method = "provideChunk", + at = @At(value = "INVOKE", + target = "Lnet/minecraft/world/chunk/Chunk;setBiomeArray([B)V", + remap = true), + remap = true, + require = 1) + private void removeUnnecessarySet(Chunk chunk, byte[] bytes) { + + } +} diff --git a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/rtg/LandscapeGeneratorMixin.java b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/rtg/LandscapeGeneratorMixin.java new file mode 100644 index 0000000..c8074c7 --- /dev/null +++ b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/rtg/LandscapeGeneratorMixin.java @@ -0,0 +1,19 @@ +package com.falsepattern.endlessids.mixin.mixins.common.rtg; + +import com.falsepattern.endlessids.constants.ExtendedConstants; +import com.falsepattern.endlessids.constants.VanillaConstants; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.Constant; +import org.spongepowered.asm.mixin.injection.ModifyConstant; +import rtg.world.gen.LandscapeGenerator; + +@Mixin(value = LandscapeGenerator.class, + remap = false) +public abstract class LandscapeGeneratorMixin { + @ModifyConstant(method = "getNewerNoise", + constant = @Constant(intValue = VanillaConstants.biomeIDCount), + require = 1) + private int extendIDs(int constant) { + return ExtendedConstants.biomeIDCount; + } +} diff --git a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/rtg/RealisticBiomeBaseMixin.java b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/rtg/RealisticBiomeBaseMixin.java new file mode 100644 index 0000000..c3e2c9b --- /dev/null +++ b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/rtg/RealisticBiomeBaseMixin.java @@ -0,0 +1,8 @@ +package com.falsepattern.endlessids.mixin.mixins.common.rtg; + +import org.spongepowered.asm.mixin.Mixin; +import rtg.world.biome.realistic.RealisticBiomeBase; + +@Mixin(RealisticBiomeBase.class) +public abstract class RealisticBiomeBaseMixin { +} 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 26e64cd..47313d9 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java @@ -94,6 +94,11 @@ public enum Mixin implements IMixin { MFQMDataWatcherMixin(Side.COMMON, require(TargetedMod.MFQM).and(condition(() -> IEConfig.extendDataWatcher)), "mfqm.MFQMDataWatcherMixin"), //endregion MFQM->common + //region RTG->common + RTGChunkProviderRTGMixin(Side.COMMON, require(TargetedMod.RTG), "rtg.ChunkProviderRTGMixin"), + RTGLandscapeGeneratorMixin(Side.COMMON, require(TargetedMod.RTG), "rtg.LandscapeGeneratorMixin"), + RTGRealisticBiomeBaseMixin(Side.COMMON, require(TargetedMod.RTG), "rtg.RealisticBiomeBaseMixin"), + //endregion RTG->common //region UBC->common UBCOreUBifierMixin(Side.COMMON, require(TargetedMod.UBC), "ubc.OreUBifierMixin"), UBCBiomeUndergroundDecoratorMixin(Side.COMMON, require(TargetedMod.UBC), "ubc.BiomeUndergroundDecoratorMixin"), 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 3635ca1..7ceab8e 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java @@ -18,6 +18,7 @@ public enum TargetedMod implements ITargetedMod { DRAGONAPI("DragonAPI", false, startsWith("dragonapi")), GALACTICRAFTCORE("GalactiCraftCore", false, startsWith("galacticraftcore")), MFQM("More Fun Quicksand Mod", false, startsWith("morefunquicksandmod-")), + RTG("Realistic Terrain Generation", true, startsWith("rtg-")), UBC("Underground Biomes Constructs", false, startsWith("undergroundbiomesconstructs-")), WORLDEDIT("WorldEdit", false, startsWith("worldedit-")), ;