package com.arkcraft.module.core.client.proxy;
import java.util.Map;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.model.ModelBakery;
import net.minecraft.client.resources.model.ModelResourceLocation;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.common.registry.GameRegistry;
import com.arkcraft.lib.LogHelper;
import com.arkcraft.module.blocks.ARKCraftBlocks;
import com.arkcraft.module.core.ARKCraft;
import com.arkcraft.module.core.client.event.CoreClientEventHandler;
import com.arkcraft.module.core.client.gui.overlay.GuiOverlay;
import com.arkcraft.module.core.common.proxy.CommonProxy;
import com.arkcraft.module.crafting.client.KeyBindings;
import com.arkcraft.module.items.ARKCraftItems;
import com.arkcraft.module.items.client.event.ItemsClientEventHandler;
import com.arkcraft.module.items.client.event.Mod2ClientEventHandler;
import com.arkcraft.module.items.common.general.ItemARKFood;
import com.arkcraft.module.items.common.handlers.PotionEffectHandler;
public class ClientProxy extends CommonProxy
{
boolean initDone = false;
@Override
public void init()
{
if (initDone) { return; }
super.init();
ItemsClientEventHandler.init();
MinecraftForge.EVENT_BUS.register(new GuiOverlay());
GameRegistry.addSmelting(ARKCraftItems.meat_raw, new ItemStack(
ARKCraftItems.meat_cooked, 1), (int) Math
.floor(ItemARKFood.globalHealAmount / 2));
GameRegistry.addSmelting(ARKCraftItems.primemeat_raw, new ItemStack(
ARKCraftItems.primemeat_cooked, 1), (int) Math
.floor(ItemARKFood.globalHealAmount / 2));
KeyBindings.preInit();
dossierProxy.init();
LogHelper.info("CommonProxy: Init run finished.");
initDone = true;
}
@Override
public void registerEventHandlers()
{
super.registerEventHandlers();
CoreClientEventHandler mod1Eventhandler = new CoreClientEventHandler();
FMLCommonHandler.instance().bus().register(mod1Eventhandler);
MinecraftForge.EVENT_BUS.register(mod1Eventhandler);
MinecraftForge.EVENT_BUS.register(new PotionEffectHandler());
Mod2ClientEventHandler mod2Eventhandler = new Mod2ClientEventHandler();
FMLCommonHandler.instance().bus().register(mod2Eventhandler);
MinecraftForge.EVENT_BUS.register(mod2Eventhandler);
}
/* We register the block/item textures and models here */
@Override
public void registerRenderers()
{
for (Map.Entry<String, Block> e : ARKCraftBlocks.allBlocks.entrySet())
{
String name = e.getKey();
Block b = e.getValue();
registerBlockTexture(b, name);
}
for (Map.Entry<String, Item> e : ARKCraftItems.allItems.entrySet())
{
String name = e.getKey();
Item item = e.getValue();
registerItemTexture(item, name);
}
}
public void registerBlockTexture(final Block block, final String blockName)
{
registerBlockTexture(block, 0, blockName);
}
public void registerBlockTexture(final Block block, int meta, final String blockName)
{
registerItemTexture(Item.getItemFromBlock(block), meta, blockName);
}
public void registerItemTexture(final Item item, final String name)
{
registerItemTexture(item, 0, name);
}
public void registerItemTexture(final Item item, int meta, final String name)
{
Minecraft
.getMinecraft()
.getRenderItem()
.getItemModelMesher()
.register(
item,
meta,
new ModelResourceLocation(ARKCraft.MODID + ":" + name,
"inventory"));
ModelBakery.addVariantName(item, ARKCraft.MODID + ":" + name);
}
public EntityPlayer getPlayer()
{
return Minecraft.getMinecraft().thePlayer;
}
// public void registerSound() {
// MinecraftForge.EVENT_BUS.register(new SoundHandler());
// }
}