aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/GTplusplus_Secondary.java
blob: 67914ad4e53ae81458f15245286c61eae1db62b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
package gtPlusPlus;

import java.io.File;
import java.util.Random;

import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;

import cofh.mod.ChildMod;
import cpw.mods.fml.common.*;
import cpw.mods.fml.common.Mod.CustomProperty;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.*;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.IFMLLoadingPlugin.MCVersion;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.world.darkworld.Dimension_DarkWorld;
import gtPlusPlus.core.world.darkworld.biome.Biome_DarkWorld;
import gtPlusPlus.core.world.darkworld.block.blockDarkWorldGround;
import gtPlusPlus.core.world.darkworld.block.blockDarkWorldPollutedDirt;
import gtPlusPlus.core.world.darkworld.block.blockDarkWorldPortal;
import gtPlusPlus.core.world.darkworld.block.blockDarkWorldPortalFrame;
import gtPlusPlus.core.world.darkworld.item.itemDarkWorldPortalTrigger;
import gtPlusPlus.xmod.gregtech.HANDLER_GT;
import gtPlusPlus.xmod.gregtech.api.util.GTPP_Config;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraftforge.common.DimensionManager;
import net.minecraftforge.common.config.Configuration;

@MCVersion(value = "1.7.10")
@ChildMod(parent = CORE.MODID, mod = @Mod(modid = "GT++DarkWorld",
name = "GT++ Dark World",
version = CORE.VERSION,
dependencies = "after:Miscutils;after:Gregtech",
customProperties = @CustomProperty(k = "cofhversion", v = "true")))
public class GTplusplus_Secondary implements IFuelHandler, IWorldGenerator{

	public static final String MODID2 = "GT++ Dark World";
	public static final String VERSION2 = "0.1";

	// Dark World Handler
	Biome_DarkWorld DarkWorld_Biome = new Biome_DarkWorld();
	Dimension_DarkWorld DarkWorld_Dimension = new Dimension_DarkWorld();
	public static int globalDarkWorldPortalSpawnTimer = 0;

	@EventHandler
	public void load(final FMLInitializationEvent e) {
		Utils.LOG_INFO("Begin resource allocation for " + MODID2 + " V" + VERSION2);
		try {
			initMod();
		} catch (final Throwable $) {
			final ModContainer This = FMLCommonHandler.instance().findContainerFor(this);
			LogManager.getLogger(This.getModId()).log(Level.ERROR, "There was a problem loading " + This.getName(), $);
		}

		//Load Dark World and Biome
		GameRegistry.registerFuelHandler(this);
		GameRegistry.registerWorldGenerator(this, 1);
		DarkWorld_Biome.load();
		DarkWorld_Dimension.load();

	}

	// Pre-Init
	@Mod.EventHandler
	public void preInit(final FMLPreInitializationEvent event) {
		Utils.LOG_INFO("Loading " + MODID2 + " V" + VERSION2);

		//Setup
		setVars();
		
		// Load Dark World
		DarkWorld_Biome.instance = GTplusplus.instance;
		DarkWorld_Dimension.instance = GTplusplus.instance;
		DarkWorld_Biome.preInit(event);
		DarkWorld_Dimension.preInit(event);
		
		//Load/Set Custom Ore Gen
		HANDLER_GT.sCustomWorldgenFile = new GTPP_Config(new Configuration(new File(new File(event.getModConfigurationDirectory(), "GTplusplus"), "WorldGeneration.cfg")));
		
	}
	
	void setVars(){
		Dimension_DarkWorld.DIMID = DimensionManager.getNextFreeDimId();
		Dimension_DarkWorld.portalBlock = new blockDarkWorldPortal();
		Dimension_DarkWorld.portalItem = (itemDarkWorldPortalTrigger) (new itemDarkWorldPortalTrigger().setUnlocalizedName("dimensionDarkWorld_trigger"));
		Item.itemRegistry.addObject(423, "dimensionDarkWorld_trigger", Dimension_DarkWorld.portalItem);
		Dimension_DarkWorld.blockTopLayer = new blockDarkWorldGround();
		Dimension_DarkWorld.blockSecondLayer = new blockDarkWorldPollutedDirt();
		GameRegistry.registerBlock(Dimension_DarkWorld.blockTopLayer, "blockDarkWorldGround");
		GameRegistry.registerBlock(Dimension_DarkWorld.blockSecondLayer, "blockDarkWorldGround2");
		Blocks.fire.setFireInfo(Dimension_DarkWorld.blockTopLayer, 30, 20);
		Dimension_DarkWorld.blockPortalFrame = new blockDarkWorldPortalFrame();
		GameRegistry.registerBlock(Dimension_DarkWorld.blockPortalFrame, "blockDarkWorldPortalFrame");
	}

	@EventHandler
	public void serverLoad(FMLServerStartingEvent event) {
		DarkWorld_Biome.serverLoad(event);
		DarkWorld_Dimension.serverLoad(event);
	}

	@Override
	public int getBurnTime(ItemStack fuel) {
		if (DarkWorld_Biome.addFuel(fuel) != 0)
			return DarkWorld_Biome.addFuel(fuel);
		if (DarkWorld_Dimension.addFuel(fuel) != 0)
			return DarkWorld_Dimension.addFuel(fuel);
		return 0;
	}

	@Override
	public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
		chunkX = chunkX * 16;
		chunkZ = chunkZ * 16;
		if (world.provider.dimensionId == -1) {
			DarkWorld_Biome.generateNether(world, random, chunkX, chunkZ);
		}
		if (world.provider.dimensionId == 0) {
			DarkWorld_Biome.generateSurface(world, random, chunkX, chunkZ);
		}
		if (world.provider.dimensionId == -1) {
			DarkWorld_Dimension.generateNether(world, random, chunkX, chunkZ);
		}
		if (world.provider.dimensionId == 0) {

		}

	}

	private static void initMod() {

	}

	@EventHandler
	public static void postInit(final FMLPostInitializationEvent e) {
		Utils.LOG_INFO("Finished loading Dark World plugin for GT++.");
	}

}