From bfbc5e3b0bd20f7e721be7f4d049ff521cff19ef Mon Sep 17 00:00:00 2001 From: AlasDiablo <25723276+AlasDiablo@users.noreply.github.com> Date: Sat, 31 Jul 2021 12:44:58 +0200 Subject: [PATCH] feat: add Mekanism ore generation Signed-off-by: AlasDiablo <25723276+AlasDiablo@users.noreply.github.com> --- build.gradle | 8 +- changelog.md | 8 ++ .../jerintegration/JERIntegration.java | 1 + .../compat/CompatibilityHandler.java | 12 +++ .../compat/mekanism/MekanismWorldGen.java | 82 +++++++++++++++++++ 5 files changed, 109 insertions(+), 2 deletions(-) create mode 100644 changelog.md create mode 100644 src/main/java/fr/alasdiablo/jerintegration/compat/mekanism/MekanismWorldGen.java diff --git a/build.gradle b/build.gradle index 3bd7875..cd29503 100644 --- a/build.gradle +++ b/build.gradle @@ -11,7 +11,7 @@ apply plugin: 'net.minecraftforge.gradle' apply plugin: 'eclipse' apply plugin: 'maven-publish' -version = '1.0.0' +version = '1.1.0' group = 'fr.alasdiablo.jerintegration' archivesBaseName = 'JER-Integration' @@ -72,7 +72,11 @@ dependencies { implementation fg.deobf("curse.maven:mantle-74924:3389377") // Mantle implementation fg.deobf("curse.maven:tinkers-construct-74072:3389395") // Tinkers Construct 3 - implementation fg.deobf("curse.maven:immersive-engineering-231951:3377691") // Immersive Engineering + implementation fg.deobf("curse.maven:mekanism-268560:3206392") // Mekanism + +// implementation fg.deobf("curse.maven:cofh-core-69162:3407019") // CoFH Core +// implementation fg.deobf("curse.maven:thermal-foundation-222880:3407024") // Thermal Foundation +// implementation fg.deobf("curse.maven:applied-energistics-2-223794:3354897") // Applied Energistics 2 } jar { diff --git a/changelog.md b/changelog.md new file mode 100644 index 0000000..97cfb7f --- /dev/null +++ b/changelog.md @@ -0,0 +1,8 @@ +### 1.1.0 + ++ Add Mekanism ore generation + +### 1.0.0 + ++ Init release ++ Add Tinkers' Construct ore generation \ No newline at end of file diff --git a/src/main/java/fr/alasdiablo/jerintegration/JERIntegration.java b/src/main/java/fr/alasdiablo/jerintegration/JERIntegration.java index 7b519ee..83ed0f5 100644 --- a/src/main/java/fr/alasdiablo/jerintegration/JERIntegration.java +++ b/src/main/java/fr/alasdiablo/jerintegration/JERIntegration.java @@ -16,6 +16,7 @@ public class JERIntegration { public static class Compat { public static boolean TINKERS_CONSTRUCT = MOD_LIST.isLoaded("tconstruct"); + public static boolean MEKANISM = MOD_LIST.isLoaded("mekanism"); } public final CompatibilityHandler compatibilityHandler; diff --git a/src/main/java/fr/alasdiablo/jerintegration/compat/CompatibilityHandler.java b/src/main/java/fr/alasdiablo/jerintegration/compat/CompatibilityHandler.java index 384a0ce..1643660 100644 --- a/src/main/java/fr/alasdiablo/jerintegration/compat/CompatibilityHandler.java +++ b/src/main/java/fr/alasdiablo/jerintegration/compat/CompatibilityHandler.java @@ -2,6 +2,7 @@ import fr.alasdiablo.jerintegration.JERIntegration; import fr.alasdiablo.jerintegration.api.IJERIntegration; +import fr.alasdiablo.jerintegration.compat.mekanism.MekanismWorldGen; import fr.alasdiablo.jerintegration.compat.minecraft.MinecraftWorldGen; import fr.alasdiablo.jerintegration.compat.tconstruct.TConstructWorldGen; import jeresources.api.IJERAPI; @@ -13,11 +14,17 @@ public class CompatibilityHandler { public IJERIntegration minecraft; + public IJERIntegration mekanism; + public CompatibilityHandler() { this.minecraft = new MinecraftWorldGen(); if (JERIntegration.Compat.TINKERS_CONSTRUCT) { this.tconstruct = new TConstructWorldGen(); } + + if (JERIntegration.Compat.MEKANISM) { + this.mekanism = new MekanismWorldGen(); + } } public void init() { @@ -27,5 +34,10 @@ public void init() { this.tconstruct.register(jerApi); JERIntegration.LOGGER.info("Tinkers' Construct integration have been initialized"); } + + if (JERIntegration.Compat.MEKANISM) { + this.mekanism.register(jerApi); + JERIntegration.LOGGER.info("Mekanism integration have been initialized"); + } } } diff --git a/src/main/java/fr/alasdiablo/jerintegration/compat/mekanism/MekanismWorldGen.java b/src/main/java/fr/alasdiablo/jerintegration/compat/mekanism/MekanismWorldGen.java new file mode 100644 index 0000000..950cd38 --- /dev/null +++ b/src/main/java/fr/alasdiablo/jerintegration/compat/mekanism/MekanismWorldGen.java @@ -0,0 +1,82 @@ +package fr.alasdiablo.jerintegration.compat.mekanism; + +import fr.alasdiablo.jerintegration.api.WorldGenIntegration; +import jeresources.api.IWorldGenRegistry; +import jeresources.api.distributions.DistributionBase; +import jeresources.api.distributions.DistributionSquare; +import jeresources.api.drop.LootDrop; +import mekanism.common.registries.MekanismBlocks; +import mekanism.common.registries.MekanismItems; +import mekanism.common.resource.OreType; +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; + +public class MekanismWorldGen extends WorldGenIntegration { + @Override + public void registerWorldGen(IWorldGenRegistry registry) { + // TODO MekanismConfig.world.salt; + + this.register(registry, + MekanismBlocks.ORES.get(OreType.COPPER).getBlock(), + OreType.COPPER.getPerChunk(), + OreType.COPPER.getMaxVeinSize(), + OreType.COPPER.getBottomOffset(), + OreType.COPPER.getMaxHeight() + ); + + this.register(registry, + MekanismBlocks.ORES.get(OreType.TIN).getBlock(), + OreType.TIN.getPerChunk(), + OreType.TIN.getMaxVeinSize(), + OreType.TIN.getBottomOffset(), + OreType.TIN.getMaxHeight() + ); + + this.register(registry, + MekanismBlocks.ORES.get(OreType.OSMIUM).getBlock(), + OreType.OSMIUM.getPerChunk(), + OreType.OSMIUM.getMaxVeinSize(), + OreType.OSMIUM.getBottomOffset(), + OreType.OSMIUM.getMaxHeight() + ); + + this.register(registry, + MekanismBlocks.ORES.get(OreType.URANIUM).getBlock(), + OreType.URANIUM.getPerChunk(), + OreType.URANIUM.getMaxVeinSize(), + OreType.URANIUM.getBottomOffset(), + OreType.URANIUM.getMaxHeight() + ); + + this.register(registry, + MekanismBlocks.ORES.get(OreType.LEAD).getBlock(), + OreType.LEAD.getPerChunk(), + OreType.LEAD.getMaxVeinSize(), + OreType.LEAD.getBottomOffset(), + OreType.LEAD.getMaxHeight() + ); + + final DistributionBase fluoriteDistribution = new DistributionSquare( + OreType.FLUORITE.getPerChunk(), + OreType.FLUORITE.getMaxVeinSize(), + OreType.FLUORITE.getBottomOffset(), + OreType.FLUORITE.getMaxHeight() + ); + final ItemStack fluoriteStack = new ItemStack(MekanismBlocks.ORES.get(OreType.FLUORITE).getBlock()); + final LootDrop fluoriteDrop = new LootDrop(new ItemStack(MekanismItems.FLUORITE_GEM.getItem(), 4)); + registry.register(fluoriteStack, fluoriteDistribution, fluoriteDrop); + } + + + public void register(IWorldGenRegistry registry, Block block, int count, int veinSize, int bottom, int top) { + final DistributionBase distribution = new DistributionSquare( + count, + veinSize, + bottom, + top + ); + final ItemStack stack = new ItemStack(block); + final LootDrop drop = new LootDrop(stack); + registry.register(stack, distribution, drop); + } +}