package ttftcuts.physis.client; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.resources.IReloadableResourceManager; import net.minecraft.client.resources.IResourceManager; import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.common.MinecraftForge; import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.RenderingRegistry; 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 ttftcuts.physis.client.gui.BookFontRenderer; import ttftcuts.physis.client.gui.BookRuneFontRenderer; import ttftcuts.physis.client.gui.RuneFontRenderer; import ttftcuts.physis.client.gui.journal.EncryptionSymbol; import ttftcuts.physis.client.gui.journal.JournalArticle; import ttftcuts.physis.client.render.RenderDigSite; import ttftcuts.physis.client.render.RenderSocketTable; import ttftcuts.physis.client.render.item.RenderSocketable; import ttftcuts.physis.client.render.tile.RenderTileDigSite; import ttftcuts.physis.client.render.tile.RenderTileSocketTable; import ttftcuts.physis.common.CommonProxy; import ttftcuts.physis.common.PhysisItems; import ttftcuts.physis.common.artifact.PhysisArtifacts; import ttftcuts.physis.common.block.tile.TileEntityDigSite; import ttftcuts.physis.common.block.tile.TileEntitySocketTable; import ttftcuts.physis.common.compat.PhysisIntegration; import ttftcuts.physis.common.handler.ClientTickHandler; import ttftcuts.physis.common.handler.TextureMapHandler; import ttftcuts.physis.common.handler.TooltipHandler; import ttftcuts.physis.common.helper.ShaderHelper; import ttftcuts.physis.common.story.StoryEngine; public class ClientProxy extends CommonProxy { public static FontRenderer runeFontRenderer; public static FontRenderer bookFontRenderer; public static FontRenderer bookRuneFontRenderer; @Override public void preInit(FMLPreInitializationEvent event) { super.preInit(event); PhysisIntegration.preInitStart(event, true); PhysisIntegration.preInitEnd(event, true); } @Override public void init(FMLInitializationEvent event) { super.init(event); PhysisIntegration.initStart(event, true); ClientProxy.runeFontRenderer = new RuneFontRenderer(); ClientProxy.bookFontRenderer = new BookFontRenderer(); ClientProxy.bookRuneFontRenderer = new BookRuneFontRenderer(); IResourceManager m = Minecraft.getMinecraft().getResourceManager(); if (m instanceof IReloadableResourceManager) { ((IReloadableResourceManager)m).registerReloadListener(ClientProxy.runeFontRenderer); ((IReloadableResourceManager)m).registerReloadListener(ClientProxy.bookFontRenderer); ((IReloadableResourceManager)m).registerReloadListener(ClientProxy.bookRuneFontRenderer); } EncryptionSymbol.init(); FMLCommonHandler.instance().bus().register(new ClientTickHandler()); MinecraftForge.EVENT_BUS.register(new TextureMapHandler()); MinecraftForge.EVENT_BUS.register(new TooltipHandler()); //MinecraftForge.EVENT_BUS.register(new BlockHighlightHandler()); RenderingRegistry.registerBlockHandler(new RenderDigSite(RenderingRegistry.getNextAvailableRenderId())); RenderingRegistry.registerBlockHandler(new RenderSocketTable(RenderingRegistry.getNextAvailableRenderId())); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDigSite.class, new RenderTileDigSite()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySocketTable.class, new RenderTileSocketTable()); MinecraftForgeClient.registerItemRenderer(PhysisItems.socketable, new RenderSocketable()); ShaderHelper.initShaders(); PhysisArtifacts.clientInit(); // make sure it doesn't come out null in that little while before loading. StoryEngine.reload(-1, true); PhysisIntegration.initEnd(event, true); } @Override public void postInit(FMLPostInitializationEvent event) { super.postInit(event); PhysisIntegration.postInitStart(event, true); //RenderSocketed.injectRenderer(); PhysisIntegration.postInitEnd(event, true); } @Override public void loadFinished(FMLLoadCompleteEvent event) { super.loadFinished(event); PhysisIntegration.loadFinished(event, true); } @Override public void doArticlePopup(JournalArticle article) { ClientTickHandler.setArticlePopup(article); } }