package ttftcuts.physis.common; import java.util.Random; import net.minecraft.server.MinecraftServer; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import ttftcuts.physis.Physis; import ttftcuts.physis.api.PhysisAPI; import ttftcuts.physis.client.gui.journal.JournalArticle; import ttftcuts.physis.client.gui.journal.PageDefs; import ttftcuts.physis.common.artifact.LootSystem; import ttftcuts.physis.common.artifact.PhysisArtifacts; import ttftcuts.physis.common.compat.PhysisIntegration; import ttftcuts.physis.common.crafting.PhysisCraftingRecipes; import ttftcuts.physis.common.file.PhysisWorldSavedData; import ttftcuts.physis.common.file.ServerData; import ttftcuts.physis.common.file.ServerData.ServerDataHandler; import ttftcuts.physis.common.handler.ArtifactEventHandler; import ttftcuts.physis.common.handler.GuiHandler; import ttftcuts.physis.common.handler.ItemDestructionHandler; import ttftcuts.physis.common.handler.ServerTickHandler; import ttftcuts.physis.common.handler.StructureHandler; import ttftcuts.physis.common.helper.recipe.RecipeHelper; import ttftcuts.physis.common.item.ItemTrowel; import ttftcuts.physis.common.item.material.PhysisToolMaterial; import ttftcuts.physis.common.network.PhysisPacketHandler; import ttftcuts.physis.common.network.packet.PacketGuiMessage; import ttftcuts.physis.common.network.packet.PacketPlayerUpdate; import ttftcuts.physis.common.network.packet.PacketWorldData; import ttftcuts.physis.common.network.packet.PacketWorldTime; import ttftcuts.physis.common.story.Knowledge; import ttftcuts.physis.common.story.PhysisStoryVars; import ttftcuts.physis.common.story.StoryEngine; import ttftcuts.physis.common.file.PhysisWorldSavedData.WorldDataHandler; import ttftcuts.physis.common.worldgen.PhysisWorldGen; import ttftcuts.physis.puzzle.oddoneout.OddOneOutBuilder; import ttftcuts.physis.utils.ModFinder; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLLoadCompleteEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.event.FMLServerAboutToStartEvent; import cpw.mods.fml.common.event.FMLServerStartingEvent; import cpw.mods.fml.common.event.FMLServerStoppedEvent; import cpw.mods.fml.common.event.FMLServerStoppingEvent; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.relauncher.Side; public class CommonProxy { public void preInit(FMLPreInitializationEvent event) { PhysisIntegration.preInitStart(event, false); ModFinder.init(); PhysisAPI.init(); PhysisStoryVars.init(); Knowledge.init(); PhysisItems.init(); PhysisBlocks.init(); PhysisArtifacts.init(); PhysisIntegration.loadModules(); PageDefs.init(); PhysisCraftingRecipes.init(); //ChestGenHandler.init(); Physis.oooBuilder = new OddOneOutBuilder(); RecipeHelper.initDefaultTranslators(); PhysisWorldGen.init(); PhysisIntegration.preInitEnd(event, false); } public void init(FMLInitializationEvent event) { PhysisIntegration.initStart(event, false); NetworkRegistry.INSTANCE.registerGuiHandler(Physis.instance, new GuiHandler()); FMLCommonHandler.instance().bus().register(new ServerTickHandler()); MinecraftForge.EVENT_BUS.register(new ArtifactEventHandler()); FMLCommonHandler.instance().bus().register(new WorldDataHandler()); MinecraftForge.EVENT_BUS.register(new ServerDataHandler()); FMLCommonHandler.instance().bus().register(new ServerDataHandler()); MinecraftForge.EVENT_BUS.register(new ItemDestructionHandler()); StructureHandler structureHandler = new StructureHandler(); MinecraftForge.EVENT_BUS.register(structureHandler); MinecraftForge.TERRAIN_GEN_BUS.register(structureHandler); networkSetup(); LootSystem.init(); PhysisIntegration.initEnd(event, false); } public void postInit(FMLPostInitializationEvent event) { PhysisIntegration.postInitStart(event, false); PhysisIntegration.postInitEnd(event, false); } public void loadFinished(FMLLoadCompleteEvent event) { //RecipeHelper.parseRecipes(); PhysisToolMaterial.buildMaterials(); ItemTrowel.buildRecipes(); PhysisIntegration.loadFinished(event, false); } public void serverPreStarting(FMLServerAboutToStartEvent event) { //ServerData.reload(false); } public void serverStarting(FMLServerStartingEvent event) { RecipeHelper.parseRecipes(); Physis.oooBuilder.start(); if (FMLCommonHandler.instance().getEffectiveSide() == Side.SERVER) { World world = MinecraftServer.getServer().worldServers[0]; PhysisWorldSavedData.load(world); } ServerData.reload(false); // set up the story! long seed = event.getServer().worldServers[0].getWorldInfo().getSeed(); Random r = new Random(seed); long storySeed = Math.abs(r.nextLong()); Physis.logger.info("Starting story engine: overworld seed: "+seed+", storyseed: "+storySeed); StoryEngine.reload(storySeed, false); } public void serverStopping(FMLServerStoppingEvent event) { } public void serverStopped(FMLServerStoppedEvent event) { Physis.oooBuilder.stop(); } private void networkSetup() { PhysisPacketHandler.registerPacketHandler(new PacketGuiMessage(), 0); PhysisPacketHandler.registerPacketHandler(new PacketWorldTime(), 1); PhysisPacketHandler.registerPacketHandler(new PacketPlayerUpdate(), 2); PhysisPacketHandler.registerPacketHandler(new PacketWorldData(), 3); PhysisPacketHandler.init(); } public void doArticlePopup(JournalArticle article) { } }