package com.harry9137.ct;
import com.harry9137.ct.achievement.AchievementIdiot;
import com.harry9137.ct.handler.FuelHandler;
import com.harry9137.ct.handler.GuiHandler;
import com.harry9137.ct.entity.EntityHandler;
import com.harry9137.ct.entity.EntityWings;
import com.harry9137.ct.event.EntityDeathEventHooks;
import com.harry9137.ct.event.PlayerRenderEvent;
import com.harry9137.ct.event.PlayerLoginHandler;
import com.harry9137.ct.event.TickHandler;
import com.harry9137.ct.handler.ConfigurationHandler;
import com.harry9137.ct.init.modBlocks;
import com.harry9137.ct.init.modItems;
import com.harry9137.ct.init.modRecipies;
import com.harry9137.ct.proxy.IProxy;
import com.harry9137.ct.reference.names;
import com.harry9137.ct.reference.reference;
import com.harry9137.ct.tileentity.*;
import com.harry9137.ct.utillity.Console;
import net.minecraft.stats.Achievement;
import net.minecraftforge.common.AchievementPage;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.event.FMLServerStartingEvent;
import net.minecraftforge.fml.common.network.NetworkRegistry;
import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import net.minecraftforge.fml.common.registry.GameRegistry;
@Mod(modid = reference.MOD_ID, name = reference.MOD_NAME, version = reference.MOD_VERSION)
public class CreepTech {
public static Console console;
public static SimpleNetworkWrapper snw;
@Mod.Instance
public static CreepTech INSTANCE;
@SidedProxy(clientSide = reference.CLIENT_PROXY_CLASS, serverSide = reference.SERVER_PROXY_CLASS)
public static IProxy proxy;
@Mod.EventHandler
public void serverLoad(FMLServerStartingEvent event)
{
//event.registerServerCommand(new CommandDevFly());
}
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event){
FMLCommonHandler.instance().bus().register(new ConfigurationHandler(event.getSuggestedConfigurationFile()));
FMLCommonHandler.instance().bus().register(new TickHandler());
if(ConfigurationHandler.DevMode){
console = new Console();
console.addText("Initializing Console");
}
console.addText("PreInit Started");
console.addText("Registering Packet Handler");
// snw = NetworkRegistry.INSTANCE.newSimpleChannel(reference.MOD_ID);
// snw.registerMessage(PacketHandler.class, WireStatePacket.class, 0, Side.CLIENT);
console.addText("Registering Events");
Achievement[] achievements = {AchievementIdiot.IdiotAchievement};
AchievementPage.registerAchievementPage(new AchievementPage(reference.MOD_NAME, achievements));
FMLCommonHandler.instance().bus().register(new PlayerRenderEvent());
MinecraftForge.EVENT_BUS.register(new EntityDeathEventHooks());
MinecraftForge.EVENT_BUS.register(new PlayerLoginHandler());
console.addText("Finished Registering Events");
NetworkRegistry.INSTANCE.registerGuiHandler(this.INSTANCE, new GuiHandler());
console.addText("Registering Items/Blocks");
modItems.init();
modBlocks.init();
console.addText("Finished Registering Items/Blocks");
console.addText("Registering Custom Renderers");
proxy.registerTileRenderers();
proxy.registerEntityRenderers();
console.addText("Pre-Init Complete");
}
@Mod.EventHandler
public void init(FMLInitializationEvent event){
console.addText("Init Started");
modRecipies.init();
FMLCommonHandler.instance().bus().register(new TickHandler());
GameRegistry.registerFuelHandler(new FuelHandler());
console.addText("Registering Tile Entitys");
GameRegistry.registerTileEntity(TileEntityWire.class, names.blocks.BlockWire);
GameRegistry.registerTileEntity(TileEntityTechTable.class, names.blocks.BlockTechTable);
GameRegistry.registerTileEntity(TileEntityBattery.class, names.blocks.BlockBattery);
GameRegistry.registerTileEntity(TileEntityGenerator.class, names.blocks.BlockGenerator);
GameRegistry.registerTileEntity(TileEntityOreGen.class, names.blocks.BlockOreGen);
GameRegistry.registerTileEntity(TileEntityIncubator.class, names.blocks.BlockIncubator);
GameRegistry.registerTileEntity(TileEntityInfuser.class, names.blocks.BlockInfuser);
console.addText("Finished Registering Tile Entitys");
EntityHandler.RegisterEntity(EntityWings.class, "playerWings");
console.addText("Init Complete");
}
@Mod.EventHandler
public void postInit(FMLPostInitializationEvent event){
console.addText("Post-Init Started");
console.addText("Post-Init Complete");
}
}