Skip to content

Commit 012de01

Browse files
authored
create the worldgen module (#2737)
1 parent a4cfe49 commit 012de01

File tree

3 files changed

+57
-22
lines changed

3 files changed

+57
-22
lines changed

src/main/java/gregtech/api/worldgen/generator/WorldGeneratorImpl.java

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,39 +11,19 @@
1111
import net.minecraft.world.chunk.IChunkProvider;
1212
import net.minecraft.world.gen.IChunkGenerator;
1313
import net.minecraftforge.common.BiomeDictionary;
14-
import net.minecraftforge.event.terraingen.OreGenEvent;
15-
import net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType;
1614
import net.minecraftforge.fml.common.IWorldGenerator;
17-
import net.minecraftforge.fml.common.eventhandler.Event.Result;
18-
import net.minecraftforge.fml.common.eventhandler.EventPriority;
19-
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
20-
21-
import com.google.common.collect.ImmutableSet;
2215

2316
import java.util.Random;
24-
import java.util.Set;
25-
26-
import static net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.*;
2717

2818
public class WorldGeneratorImpl implements IWorldGenerator {
2919

3020
public static final WorldGeneratorImpl INSTANCE = new WorldGeneratorImpl();
3121

32-
private static final Set<EventType> ORE_EVENT_TYPES = ImmutableSet.of(COAL, DIAMOND, GOLD, IRON, LAPIS, REDSTONE,
33-
QUARTZ, EMERALD);
3422
public static final int GRID_SIZE_X = 3;
3523
public static final int GRID_SIZE_Z = 3;
3624

3725
private WorldGeneratorImpl() {}
3826

39-
@SubscribeEvent(priority = EventPriority.HIGH)
40-
public static void onOreGenerate(OreGenEvent.GenerateMinable event) {
41-
EventType eventType = event.getType();
42-
if (ConfigHolder.worldgen.disableVanillaOres && ORE_EVENT_TYPES.contains(eventType)) {
43-
event.setResult(Result.DENY);
44-
}
45-
}
46-
4727
@Override
4828
public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator,
4929
IChunkProvider chunkProvider) {

src/main/java/gregtech/modules/GregTechModules.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package gregtech.modules;
22

3+
import gregtech.api.GTValues;
34
import gregtech.api.modules.IModuleContainer;
45

5-
public class GregTechModules implements IModuleContainer {
6+
public final class GregTechModules implements IModuleContainer {
67

78
public static final String MODULE_CORE = "core";
89
public static final String MODULE_TOOLS = "tools";
910
public static final String MODULE_INTEGRATION = "integration";
11+
public static final String MODULE_WORLDGEN = "worldgen";
1012

1113
// Integration modules
1214
public static final String MODULE_JEI = "jei_integration";
@@ -21,6 +23,6 @@ public class GregTechModules implements IModuleContainer {
2123

2224
@Override
2325
public String getID() {
24-
return "gregtech";
26+
return GTValues.MODID;
2527
}
2628
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package gregtech.worldgen;
2+
3+
import gregtech.api.GTValues;
4+
import gregtech.api.modules.GregTechModule;
5+
import gregtech.common.ConfigHolder;
6+
import gregtech.modules.BaseGregTechModule;
7+
import gregtech.modules.GregTechModules;
8+
9+
import net.minecraftforge.event.terraingen.OreGenEvent;
10+
import net.minecraftforge.fml.common.eventhandler.Event;
11+
import net.minecraftforge.fml.common.eventhandler.EventPriority;
12+
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
13+
14+
import org.apache.logging.log4j.LogManager;
15+
import org.apache.logging.log4j.Logger;
16+
import org.jetbrains.annotations.NotNull;
17+
18+
import java.util.Collections;
19+
import java.util.EnumSet;
20+
import java.util.List;
21+
import java.util.Set;
22+
23+
import static net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.*;
24+
25+
@GregTechModule(
26+
moduleID = GregTechModules.MODULE_WORLDGEN,
27+
containerID = GTValues.MODID,
28+
name = "GregTech Worldgen",
29+
description = "GregTech Worldgen Module.")
30+
public class WorldgenModule extends BaseGregTechModule {
31+
32+
public static final Logger LOGGER = LogManager.getLogger("GregTech Worldgen");
33+
34+
private static final Set<OreGenEvent.GenerateMinable.EventType> VANILLA_ORE_GEN_EVENT_TYPES = EnumSet.of(
35+
COAL, DIAMOND, GOLD, IRON, LAPIS, REDSTONE, QUARTZ, EMERALD);
36+
37+
@Override
38+
public @NotNull Logger getLogger() {
39+
return LOGGER;
40+
}
41+
42+
@Override
43+
public @NotNull List<Class<?>> getOreGenBusSubscribers() {
44+
return Collections.singletonList(WorldgenModule.class);
45+
}
46+
47+
@SubscribeEvent(priority = EventPriority.HIGH)
48+
public static void onGenerateMineable(@NotNull OreGenEvent.GenerateMinable event) {
49+
if (ConfigHolder.worldgen.disableVanillaOres && VANILLA_ORE_GEN_EVENT_TYPES.contains(event.getType())) {
50+
event.setResult(Event.Result.DENY);
51+
}
52+
}
53+
}

0 commit comments

Comments
 (0)