mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
97 lines
3.4 KiB
Java
97 lines
3.4 KiB
Java
package com.hbm.lib;
|
|
|
|
import com.hbm.blocks.ModBlocks;
|
|
import com.hbm.config.GeneralConfig;
|
|
import com.hbm.config.WorldConfig;
|
|
import com.hbm.world.gen.MapGenChainloader;
|
|
import com.hbm.world.gen.MapGenNTMFeatures;
|
|
import com.hbm.world.gen.NTMWorldGenerator;
|
|
import com.hbm.world.gen.component.*;
|
|
import com.hbm.world.gen.component.BunkerComponents.BunkerStart;
|
|
import com.hbm.world.gen.nbt.NBTStructure;
|
|
import com.hbm.world.gen.terrain.MapGenBedrockOil;
|
|
import com.hbm.world.gen.terrain.MapGenBubble;
|
|
import com.hbm.world.gen.terrain.MapGenCrater;
|
|
|
|
import cpw.mods.fml.common.IWorldGenerator;
|
|
import cpw.mods.fml.common.registry.GameRegistry;
|
|
import net.minecraft.init.Blocks;
|
|
import net.minecraft.world.biome.BiomeGenBase;
|
|
import net.minecraft.world.gen.structure.MapGenStructureIO;
|
|
import net.minecraftforge.common.MinecraftForge;
|
|
|
|
public class HbmWorld {
|
|
|
|
public static void mainRegistry() {
|
|
initWorldGen();
|
|
}
|
|
|
|
public static NTMWorldGenerator worldGenerator;
|
|
|
|
public static void initWorldGen() {
|
|
MapGenStructureIO.registerStructure(MapGenNTMFeatures.Start.class, "NTMFeatures");
|
|
MapGenStructureIO.registerStructure(BunkerStart.class, "NTMBunker");
|
|
registerNTMFeatures();
|
|
|
|
registerWorldGen(new HbmWorldGen(), 1);
|
|
|
|
worldGenerator = new NTMWorldGenerator();
|
|
registerWorldGen(worldGenerator, 1); //Ideally, move everything over from HbmWorldGen to NTMWorldGenerator
|
|
MinecraftForge.EVENT_BUS.register(worldGenerator);
|
|
|
|
NBTStructure.register();
|
|
|
|
MapGenChainloader.register();
|
|
registerNTMTerrain();
|
|
}
|
|
|
|
private static void registerWorldGen(IWorldGenerator nukerWorldGen, int weightedProbability) {
|
|
GameRegistry.registerWorldGenerator(nukerWorldGen, weightedProbability);
|
|
}
|
|
|
|
/** Register structures in MapGenStructureIO */
|
|
private static void registerNTMFeatures() {
|
|
CivilianFeatures.registerComponents();
|
|
OfficeFeatures.registerComponents();
|
|
// RuinFeatures.registerComponents();
|
|
BunkerComponents.registerComponents();
|
|
MapGenStructureIO.func_143031_a(SiloComponent.class, "NTMSiloComponent");
|
|
}
|
|
|
|
/** Register multi-chunk spanning terrain features using chainloader */
|
|
private static void registerNTMTerrain() {
|
|
if(GeneralConfig.enableRad && WorldConfig.radfreq > 0) {
|
|
MapGenCrater sellafieldCrater = new MapGenCrater(WorldConfig.radfreq);
|
|
sellafieldCrater.regolith = sellafieldCrater.rock = ModBlocks.sellafield_slaked;
|
|
sellafieldCrater.targetBiome = BiomeGenBase.desert;
|
|
MapGenChainloader.addOverworldGenerator(sellafieldCrater);
|
|
}
|
|
|
|
if(WorldConfig.oilSpawn > 0) {
|
|
MapGenBubble oilBubble = new MapGenBubble(WorldConfig.oilSpawn);
|
|
oilBubble.block = ModBlocks.ore_oil;
|
|
oilBubble.setSize(8, 16);
|
|
MapGenChainloader.addOverworldGenerator(oilBubble);
|
|
}
|
|
|
|
if(WorldConfig.bedrockOilSpawn > 0) {
|
|
MapGenBedrockOil bedrockBubble = new MapGenBedrockOil(WorldConfig.bedrockOilSpawn);
|
|
MapGenChainloader.addOverworldGenerator(bedrockBubble);
|
|
}
|
|
|
|
int sandBubbleSpawn = 200;
|
|
if(sandBubbleSpawn > 0) {
|
|
MapGenBubble sandOilBubble = new MapGenBubble(sandBubbleSpawn);
|
|
sandOilBubble.replace = Blocks.sand;
|
|
sandOilBubble.block = ModBlocks.ore_oil_sand;
|
|
sandOilBubble.canSpawn = biome -> !biome.canSpawnLightningBolt() && biome.temperature >= 1.5F;
|
|
sandOilBubble.minY = 56;
|
|
sandOilBubble.rangeY = 16;
|
|
sandOilBubble.setSize(16, 48);
|
|
sandOilBubble.fuzzy = true;
|
|
MapGenChainloader.addOverworldGenerator(sandOilBubble);
|
|
}
|
|
}
|
|
|
|
}
|