diff --git a/src/main/java/gregtech/api/worldgen/generator/WorldGeneratorImpl.java b/src/main/java/gregtech/api/worldgen/generator/WorldGeneratorImpl.java index 3ba6879ac0b..e9386e2e061 100644 --- a/src/main/java/gregtech/api/worldgen/generator/WorldGeneratorImpl.java +++ b/src/main/java/gregtech/api/worldgen/generator/WorldGeneratorImpl.java @@ -11,39 +11,19 @@ import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.gen.IChunkGenerator; import net.minecraftforge.common.BiomeDictionary; -import net.minecraftforge.event.terraingen.OreGenEvent; -import net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType; import net.minecraftforge.fml.common.IWorldGenerator; -import net.minecraftforge.fml.common.eventhandler.Event.Result; -import net.minecraftforge.fml.common.eventhandler.EventPriority; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -import com.google.common.collect.ImmutableSet; import java.util.Random; -import java.util.Set; - -import static net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.*; public class WorldGeneratorImpl implements IWorldGenerator { public static final WorldGeneratorImpl INSTANCE = new WorldGeneratorImpl(); - private static final Set ORE_EVENT_TYPES = ImmutableSet.of(COAL, DIAMOND, GOLD, IRON, LAPIS, REDSTONE, - QUARTZ, EMERALD); public static final int GRID_SIZE_X = 3; public static final int GRID_SIZE_Z = 3; private WorldGeneratorImpl() {} - @SubscribeEvent(priority = EventPriority.HIGH) - public static void onOreGenerate(OreGenEvent.GenerateMinable event) { - EventType eventType = event.getType(); - if (ConfigHolder.worldgen.disableVanillaOres && ORE_EVENT_TYPES.contains(eventType)) { - event.setResult(Result.DENY); - } - } - @Override public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) { diff --git a/src/main/java/gregtech/modules/GregTechModules.java b/src/main/java/gregtech/modules/GregTechModules.java index 96ad33664b9..b0ba5a45e30 100644 --- a/src/main/java/gregtech/modules/GregTechModules.java +++ b/src/main/java/gregtech/modules/GregTechModules.java @@ -1,12 +1,14 @@ package gregtech.modules; +import gregtech.api.GTValues; import gregtech.api.modules.IModuleContainer; -public class GregTechModules implements IModuleContainer { +public final class GregTechModules implements IModuleContainer { public static final String MODULE_CORE = "core"; public static final String MODULE_TOOLS = "tools"; public static final String MODULE_INTEGRATION = "integration"; + public static final String MODULE_WORLDGEN = "worldgen"; // Integration modules public static final String MODULE_JEI = "jei_integration"; @@ -21,6 +23,6 @@ public class GregTechModules implements IModuleContainer { @Override public String getID() { - return "gregtech"; + return GTValues.MODID; } } diff --git a/src/main/java/gregtech/worldgen/WorldgenModule.java b/src/main/java/gregtech/worldgen/WorldgenModule.java new file mode 100644 index 00000000000..c279c21e6eb --- /dev/null +++ b/src/main/java/gregtech/worldgen/WorldgenModule.java @@ -0,0 +1,53 @@ +package gregtech.worldgen; + +import gregtech.api.GTValues; +import gregtech.api.modules.GregTechModule; +import gregtech.common.ConfigHolder; +import gregtech.modules.BaseGregTechModule; +import gregtech.modules.GregTechModules; + +import net.minecraftforge.event.terraingen.OreGenEvent; +import net.minecraftforge.fml.common.eventhandler.Event; +import net.minecraftforge.fml.common.eventhandler.EventPriority; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.jetbrains.annotations.NotNull; + +import java.util.Collections; +import java.util.EnumSet; +import java.util.List; +import java.util.Set; + +import static net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.*; + +@GregTechModule( + moduleID = GregTechModules.MODULE_WORLDGEN, + containerID = GTValues.MODID, + name = "GregTech Worldgen", + description = "GregTech Worldgen Module.") +public class WorldgenModule extends BaseGregTechModule { + + public static final Logger LOGGER = LogManager.getLogger("GregTech Worldgen"); + + private static final Set VANILLA_ORE_GEN_EVENT_TYPES = EnumSet.of( + COAL, DIAMOND, GOLD, IRON, LAPIS, REDSTONE, QUARTZ, EMERALD); + + @Override + public @NotNull Logger getLogger() { + return LOGGER; + } + + @Override + public @NotNull List> getOreGenBusSubscribers() { + return Collections.singletonList(WorldgenModule.class); + } + + @SubscribeEvent(priority = EventPriority.HIGH) + public static void onGenerateMineable(@NotNull OreGenEvent.GenerateMinable event) { + if (ConfigHolder.worldgen.disableVanillaOres && VANILLA_ORE_GEN_EVENT_TYPES.contains(event.getType())) { + event.setResult(Event.Result.DENY); + } + } +}