package lumaceon.mods.clockworkphase2.proxy;
import lumaceon.mods.clockworkphase2.api.assembly.ContainerAssemblyTable;
import lumaceon.mods.clockworkphase2.client.gui.ButtonInitializer;
import lumaceon.mods.clockworkphase2.client.gui.GuiHandler;
import lumaceon.mods.clockworkphase2.client.model.CustomModelLoaderClockworkPhase;
import lumaceon.mods.clockworkphase2.client.render.ModelRegistry;
import lumaceon.mods.clockworkphase2.client.keybind.KeyHandler;
import lumaceon.mods.clockworkphase2.client.keybind.Keybindings;
import lumaceon.mods.clockworkphase2.client.render.RenderHandler;
import lumaceon.mods.clockworkphase2.client.tesr.*;
import lumaceon.mods.clockworkphase2.handler.InputHandler;
import lumaceon.mods.clockworkphase2.handler.ModelBakeHandler;
import lumaceon.mods.clockworkphase2.lib.Reference;
import lumaceon.mods.clockworkphase2.network.PacketHandlerClient;
import lumaceon.mods.clockworkphase2.tile.TileCelestialCompass;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.world.World;
import net.minecraft.world.WorldProvider;
import net.minecraftforge.client.IRenderHandler;
import net.minecraftforge.client.model.ModelLoaderRegistry;
import net.minecraftforge.client.model.obj.OBJLoader;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.client.registry.ClientRegistry;
import java.io.File;
import java.util.List;
public class ClientProxy extends CommonProxy
{
public static ModelResourceLocation LEXICON_MODEL;
public static ModelResourceLocation MULTITOOL_MODEL;
@Override
public void preInit() {
OBJLoader.INSTANCE.addDomain(Reference.MOD_ID);
ModelLoaderRegistry.registerLoader(new CustomModelLoaderClockworkPhase());
new GuiHandler();
}
@Override
public void init()
{
PacketHandlerClient.init();
}
@Override
public World getClientWorld() {
return Minecraft.getMinecraft() == null ? null : Minecraft.getMinecraft().theWorld;
}
@Override
public void registerTESR() {
ClientRegistry.bindTileEntitySpecialRenderer(TileCelestialCompass.class, new TESRTimezoneController());
}
@Override
public void registerBlockModel(Block block, String unlocalizedName) {
ModelRegistry.registerItemBlockModel(block, unlocalizedName);
}
@Override
public void registerItemModel(Item item, String unlocalizedName) {
ModelRegistry.registerItemModel(item, unlocalizedName);
}
@Override
public void registerCustomModels() {
}
@Override
public void registerFluidModels() {
//ModelRegistry.registerFluidModel(ModBlocks.liquidTemporium.getBlock(), "temporium");
}
@Override
public void registerKeybindings() {
ClientRegistry.registerKeyBinding(Keybindings.activate);
}
@Override
public void initSideHandlers()
{
RenderHandler renderer = new RenderHandler();
MinecraftForge.EVENT_BUS.register(renderer);
MinecraftForge.EVENT_BUS.register(renderer);
MinecraftForge.EVENT_BUS.register(new KeyHandler());
MinecraftForge.EVENT_BUS.register(new InputHandler());
MinecraftForge.EVENT_BUS.register(new ModelBakeHandler());
}
@Override
public void clearWorldRenderers(World world, int x, int y, int z) {
}
@Override
public IRenderHandler getSkyRendererForWorld(WorldProvider worldProvider) {
return null;
}
@Override
public void initializeButtonsViaProxy(int id, List buttonList, ContainerAssemblyTable container, int guiLeft, int guiTop)
{
switch (id)
{
case 0: //Mainspring
ButtonInitializer.initializeMainspringButtons(buttonList, container, guiLeft, guiTop);
break;
}
}
@Override
public File getMinecraftDataDirectory() {
return Minecraft.getMinecraft().mcDataDir;
}
}