package net.tropicraft;
import modconfig.ConfigMod;
import net.minecraftforge.common.MinecraftForge;
import net.tropicraft.config.ConfigBiomes;
import net.tropicraft.config.ConfigGenRates;
import net.tropicraft.config.ConfigMisc;
import net.tropicraft.drinks.MixerRecipes;
import net.tropicraft.encyclopedia.Encyclopedia;
import net.tropicraft.event.TCBlockEvents;
import net.tropicraft.event.TCItemEvents;
import net.tropicraft.event.TCMiscEvents;
import net.tropicraft.event.TCPacketEvents;
import net.tropicraft.info.TCInfo;
import net.tropicraft.proxy.ISuperProxy;
import net.tropicraft.registry.TCBlockRegistry;
import net.tropicraft.registry.TCCommandRegistry;
import net.tropicraft.registry.TCCraftingRegistry;
import net.tropicraft.registry.TCEntityRegistry;
import net.tropicraft.registry.TCFluidRegistry;
import net.tropicraft.registry.TCItemRegistry;
import net.tropicraft.registry.TCKoaCurrencyRegistry;
import net.tropicraft.registry.TCTileEntityRegistry;
import net.tropicraft.util.ColorHelper;
import net.tropicraft.util.TropicraftWorldUtils;
import net.tropicraft.world.TCWorldGenerator;
import net.tropicraft.world.biomes.BiomeGenTropicraft;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.network.FMLEventChannel;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
/**
* Mod file for the Tropicraft mod
*
*/
@Mod(modid = TCInfo.MODID, name = TCInfo.NAME, version = TCInfo.VERSION)
public class Tropicraft {
@SidedProxy(clientSide = TCInfo.CLIENT_PROXY, serverSide = TCInfo.SERVER_PROXY)
public static ISuperProxy proxy;
@Mod.Instance(TCInfo.MODID)
public static Tropicraft instance;
public static Encyclopedia encyclopedia;
public static String eventChannelName = "tropicraft";
public static final FMLEventChannel eventChannel = NetworkRegistry.INSTANCE.newEventDrivenChannel(eventChannelName);
/**
* Triggered when a server starts
* @param event
*/
@EventHandler
public void serverStarting(FMLServerStartingEvent event) {
TCCommandRegistry.init(event);
}
/**
* Triggered before the game loads
* @param event
*/
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
ConfigMod.addConfigFile(event, "tc_biomes", new ConfigBiomes());
ConfigMod.addConfigFile(event, "tc_genrates", new ConfigGenRates());
ConfigMod.addConfigFile(event, "tc_misc", new ConfigMisc());
ColorHelper.init();
TCFluidRegistry.init();
TCBlockRegistry.init();
TCTileEntityRegistry.init();
TCItemRegistry.init();
TCFluidRegistry.postInit();
TCKoaCurrencyRegistry.init();
MixerRecipes.addMixerRecipes();
proxy.registerBooks();
// register encyclopedia ^ before crafting v
TCCraftingRegistry.init();
eventChannel.register(new TCPacketEvents());
}
/**
* Called on initialization
* @param event
*/
@EventHandler
public void init(FMLInitializationEvent event) {
proxy.initRenderHandlersAndIDs();
BiomeGenTropicraft.registerBiomes();
TCEntityRegistry.init();
proxy.initRenderRegistry();
MinecraftForge.EVENT_BUS.register(new TCBlockEvents());
MinecraftForge.EVENT_BUS.register(new TCItemEvents());
TCMiscEvents misc = new TCMiscEvents();
MinecraftForge.EVENT_BUS.register(misc);
FMLCommonHandler.instance().bus().register(misc);
GameRegistry.registerWorldGenerator(new TCWorldGenerator(), 10);
TropicraftWorldUtils.initializeDimension();
}
/**
* Triggered after initialization
* @param event
*/
@EventHandler
public void postInit(FMLPostInitializationEvent event) {
}
/**
* Triggered when communicating with other mods
* @param event
*/
@EventHandler
public void handleIMCMessages(IMCEvent event) {
//this event is for non runtime messages
}
public static void dbg(Object obj) {
boolean consoleDebug = true;
if (consoleDebug) {
System.out.println(obj);
}
}
}