/* This file is part of Project-Zed. Project-Zed is free software: you can redistribute it and/or modify it under the terms of the GNU General Public * License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Project-Zed is * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A * PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along * with Project-Zed. If not, see <http://www.gnu.org/licenses/> */ package com.projectzed.mod.proxy; import com.hockeyhurd.hcorelib.api.block.IHBlock; import com.hockeyhurd.hcorelib.api.client.util.ModelRegistry; import com.hockeyhurd.hcorelib.api.handler.config.ConfigChangedEventHandler; import com.hockeyhurd.hcorelib.api.handler.input.KeyBindingHandler; import com.hockeyhurd.hcorelib.api.item.IHItem; import com.projectzed.api.energy.source.EnumColor; import com.projectzed.mod.ProjectZed; import com.projectzed.mod.handler.DrawBlockSelectionHandler; import com.projectzed.mod.handler.input.ItemAdjusterHandler; import com.projectzed.mod.registry.BlockRegistry; import com.projectzed.mod.registry.ItemRegistry; import com.projectzed.mod.renderer.*; import com.projectzed.mod.tileentity.TileEntityWickedClearGlass; import com.projectzed.mod.tileentity.container.*; import com.projectzed.mod.tileentity.container.pipe.*; import com.projectzed.mod.util.Reference; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.client.registry.ClientRegistry; import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import org.lwjgl.input.Keyboard; /** * Client proxy for client related registering only! * * @author hockeyhurd * @version Oct 19, 2014 */ @SideOnly(Side.CLIENT) public class ClientProxy extends CommonProxy { // private static final RenderWorldHandler renderWorldHandler = RenderWorldHandler.instance(); // private static final ChunkLoaderWorldRenderer chunkLoaderWorldRenderer = ChunkLoaderWorldRenderer.instance(); private static KeyBindingHandler keyBindingHandler; /** * Default Constructor. */ public ClientProxy() { } /** * Gets the KeyBindingHandler from ClientProxy. * * @return KeyBindingHandler instance. */ /*public static KeyBindingHandler getKeyBindingHandler() { return keyBindingHandler; }*/ @Override protected void registerBlocks() { BlockRegistry.instance().init(ProjectZed.class); for (IHBlock b : BlockRegistry.instance().getBlocks().values()) { if (b != null) { GameRegistry.register(b.getBlock()); GameRegistry.register(b.getItemBlock().setRegistryName(b.getBlock().getRegistryName())); ModelRegistry.registerBlock(b); } } } @Override protected void registerItems() { ItemRegistry.instance().init(ProjectZed.class); for (IHItem i : ItemRegistry.instance().getItems().values()) { if (i != null) { GameRegistry.register(i.getItem()); ModelRegistry.registerItem(i); // if (item instanceof IHItem) ModelRegistry.registerItem((IHItem) item); // else ProjectZed.logHelper.warn("Item:", item.getUnlocalizedName(), "is not an IHItem!"); } } } @Override public void registerEventHandlers() { super.registerEventHandlers(); FMLCommonHandler.instance().bus().register(new ConfigChangedEventHandler(ProjectZed.modID, ProjectZed.configHandler)); } /** * Method used to overwrite CommonProxy's method * and to register any special renderer's we may have. */ @Override public void registerRenderInformation() { /*energyPipeRed = RenderingRegistry.getNextAvailableRenderId(); energyPipeOrange = RenderingRegistry.getNextAvailableRenderId(); energyPipeClear = RenderingRegistry.getNextAvailableRenderId(); energyCell = RenderingRegistry.getNextAvailableRenderId(); refinery = RenderingRegistry.getNextAvailableRenderId(); fluidTankTier0 = RenderingRegistry.getNextAvailableRenderId(); fluidTankTier1 = RenderingRegistry.getNextAvailableRenderId(); fluidTankTier2 = RenderingRegistry.getNextAvailableRenderId(); fluidTankTier3 = RenderingRegistry.getNextAvailableRenderId(); liquiductBlue = RenderingRegistry.getNextAvailableRenderId(); liquiductClear = RenderingRegistry.getNextAvailableRenderId(); itemPipeGreen = RenderingRegistry.getNextAvailableRenderId(); itemPipeGreenOpaque = RenderingRegistry.getNextAvailableRenderId(); thickenedGlass = RenderingRegistry.getNextAvailableRenderId(); wickedClearGlass = RenderingRegistry.getNextAvailableRenderId(); reactorGlass = RenderingRegistry.getNextAvailableRenderId(); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEnergyPipeRed.class, new EnergyPipeRenderer(EnumColor.RED)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEnergyPipeOrange.class, new EnergyPipeRenderer(EnumColor.ORANGE)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEnergyPipeClear.class, new EnergyPipeRenderer(EnumColor.CLEAR)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEnergyBankBase.class, new EnergyBankRenderer((byte) 0)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRefinery.class, new RefineryRenderer()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFluidTankTier0.class, new FluidTankRenderer((byte) 0)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFluidTankTier1.class, new FluidTankRenderer((byte) 1)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFluidTankTier2.class, new FluidTankRenderer((byte) 2)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFluidTankTier3.class, new FluidTankRenderer((byte) 3)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLiquiductBlue.class, new FluidPipeRenderer(EnumColor.BLUE)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLiquiductClear.class, new FluidPipeRenderer(EnumColor.CLEAR)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityItemPipeGreen.class, new ItemPipeRenderer(EnumColor.GREEN)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityItemPipeGreenOpaque.class, new ItemPipeRenderer(EnumColor.GREEN_OPAQUE)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityReactorGlass.class, new ReactorGlassRenderer()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWickedClearGlass.class, new WickedClearGlassRenderer()); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ProjectZed.energyPipeRed), new EnergyPipeItemRenderer(ProjectZed.energyPipeRed.getBlockTextureFromSide(0))); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ProjectZed.energyPipeOrange), new EnergyPipeItemRenderer(ProjectZed.energyPipeOrange.getBlockTextureFromSide(0))); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ProjectZed.energyPipeClear), new EnergyPipeItemRenderer(ProjectZed.energyPipeClear.getBlockTextureFromSide(0), true)); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ProjectZed.energyCellTier0), new EnergyBankItemRenderer(ProjectZed.energyCellTier0.getBlockTextureFromSide(0))); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ProjectZed.energyCellTier1), new EnergyBankItemRenderer(ProjectZed.energyCellTier1.getBlockTextureFromSide(0))); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ProjectZed.energyCellTier2), new EnergyBankItemRenderer(ProjectZed.energyCellTier2.getBlockTextureFromSide(0))); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ProjectZed.energyCellTier3), new EnergyBankItemRenderer(ProjectZed.energyCellTier3.getBlockTextureFromSide(0))); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ProjectZed.refinery), new RefineryItemRenderer(ProjectZed.refinery.getBlockTextureFromSide(0))); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ProjectZed.fluidTankTier0), new FluidTankItemRenderer(ProjectZed.fluidTankTier0.getBlockTextureFromSide(0), (byte) 0)); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ProjectZed.fluidTankTier1), new FluidTankItemRenderer(ProjectZed.fluidTankTier1.getBlockTextureFromSide(0), (byte) 1)); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ProjectZed.fluidTankTier2), new FluidTankItemRenderer(ProjectZed.fluidTankTier2.getBlockTextureFromSide(0), (byte) 2)); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ProjectZed.fluidTankTier3), new FluidTankItemRenderer(ProjectZed.fluidTankTier3.getBlockTextureFromSide(0), (byte) 3)); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ProjectZed.liquiductBlue), new FluidPipeItemRenderer(ProjectZed.liquiductBlue.getBlockTextureFromSide(0))); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ProjectZed.liquiductClear), new FluidPipeItemRenderer(ProjectZed.liquiductClear.getBlockTextureFromSide(0))); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ProjectZed.itemPipeGreen), new ItemPipeItemRenderer(ProjectZed.itemPipeGreen.getBlockTextureFromSide(0))); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ProjectZed.itemPipeGreenOpaque), new ItemPipeItemRenderer(ProjectZed.itemPipeGreenOpaque.getBlockTextureFromSide(0))); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ProjectZed.nuclearReactorGlass), new ReactorGlassItemRenderer(ProjectZed.nuclearReactorGlass.getBlockTextureFromSide(0))); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ProjectZed.thickenedGlass), new ThickenedGlassItemRenderer(ProjectZed.thickenedGlass.getBlockTextureFromSide(0))); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ProjectZed.wickedClearGlass), new WickedClearGlassItemRenderer(ProjectZed.wickedClearGlass.getBlockTextureFromSide(0))); RenderingRegistry.registerBlockHandler(new ThickenedGlassRenderer());*/ ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEnergyBankBase.class, new EnergyBankRenderer()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEnergyPipeRed.class, new EnergyPipeRenderer(EnumColor.RED)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEnergyPipeOrange.class, new EnergyPipeRenderer(EnumColor.ORANGE)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEnergyPipeClear.class, new EnergyPipeRenderer(EnumColor.CLEAR)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLiquiductBlue.class, new FluidPipeRenderer(EnumColor.BLUE)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLiquiductClear.class, new FluidPipeRenderer(EnumColor.CLEAR)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFluidTankTier0.class, new FluidTankRenderer(0)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFluidTankTier1.class, new FluidTankRenderer(1)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFluidTankTier2.class, new FluidTankRenderer(2)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFluidTankTier3.class, new FluidTankRenderer(3)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRefinery.class, new RefineryRenderer()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityReactorGlass.class, new ReactorGlassRenderer()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWickedClearGlass.class, new WickedClearGlassRenderer()); // MinecraftForge.EVENT_BUS.register(renderWorldHandler); MinecraftForge.EVENT_BUS.register(new DrawBlockSelectionHandler()); } /** * Method used to overwrite CommonProxy's method * and to register any input handler(s) we may have. */ @Override public void registerInputHandlers() { // keyBindingHandler = new KeyBindingHandler(new ChunkToggleKeyBind(chunkLoaderWorldRenderer)); // FMLCommonHandler.instance().bus().register(keyBindingHandler); keyBindingHandler = new KeyBindingHandler( new ItemAdjusterHandler.ItemAdjusterIncrementorHandler("radii increase", Keyboard.KEY_ADD, Reference.MOD_NAME), new ItemAdjusterHandler.ItemAdjusterDecrementorHandler("radii decrease", Keyboard.KEY_SUBTRACT, Reference.MOD_NAME)); FMLCommonHandler.instance().bus().register(keyBindingHandler); } @Override public boolean isClient() { return true; } }