Skip to content

Commit

Permalink
create the worldgen module (#2737)
Browse files Browse the repository at this point in the history
  • Loading branch information
TechLord22 authored Feb 25, 2025
1 parent a4cfe49 commit 012de01
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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<EventType> 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) {
Expand Down
6 changes: 4 additions & 2 deletions src/main/java/gregtech/modules/GregTechModules.java
Original file line number Diff line number Diff line change
@@ -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";
Expand All @@ -21,6 +23,6 @@ public class GregTechModules implements IModuleContainer {

@Override
public String getID() {
return "gregtech";
return GTValues.MODID;
}
}
53 changes: 53 additions & 0 deletions src/main/java/gregtech/worldgen/WorldgenModule.java
Original file line number Diff line number Diff line change
@@ -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<OreGenEvent.GenerateMinable.EventType> 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<Class<?>> 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);
}
}
}

0 comments on commit 012de01

Please sign in to comment.