package bunyan;

import bunyan.blocks.BunyanBlock;
import bunyan.items.BunyanItem;
import java.lang.reflect.Method;
import net.minecraft.server.Block;
import net.minecraft.server.Item;
import net.minecraft.server.ItemStack;
import net.minecraft.server.ModLoader;

public enum modEE
{
    INSTANCE;
    public static Method setEMC;
    public static Method getEMC;

    public static int getEMC(int var0)
    {
        return getEMC(var0, 0);
    }

    public static int getEMC(int var0, int var1)
    {
        ItemStack var2 = new ItemStack(var0, 1, var1);
        return getEMC(var2);
    }

    public static int getEMC(ItemStack var0)
    {
        Object[] var1 = new Object[] {var0};

        try
        {
            Object var2 = getEMC.invoke((Object)null, var1);
            return ((Integer)var2).intValue();
        }
        catch (Exception var4)
        {
            ModLoader.getLogger().fine("Could not get EMC.");
            return 0;
        }
    }

    public static boolean isEnabled()
    {
        return ModLoader.isModLoaded("mod_EE");
    }

    public static void setEMC(int var0, int var1)
    {
        setEMC(var0, 0, var1);
    }

    public static void setEMC(int var0, int var1, int var2)
    {
        Object[] var3 = new Object[] {new Integer(var0), new Integer(var1), new Integer(var2)};

        try
        {
            setEMC.invoke((Object)null, var3);
        }
        catch (Exception var5)
        {
            ModLoader.getLogger().fine("Could not set EMC.");
        }
    }

    public static void setEMC(ItemStack var0, int var1)
    {
        setEMC(var0.id, var0.getData(), var1);
    }

    private static void setEMCValues()
    {
        int var0 = getEMC(Block.LOG.id);
        int var1 = getEMC(Block.WOOD.id);
        int var2 = getEMC(new ItemStack(Item.STICK));
        setEMC(BunyanBlock.wood.id, 2, var0);
        setEMC(BunyanBlock.wood.id, 1, var0);
        setEMC(BunyanBlock.widewood.id, 1, var0);
        setEMC(BunyanBlock.widewood.id, 2, var0);
        setEMC(BunyanBlock.widewood.id, 0, var0);
        setEMC(BunyanBlock.planks.id, 2, var1);
        setEMC(BunyanBlock.planks.id, 1, var1);
        setEMC(BunyanBlock.planks.id, 0, var1);
        setEMC(BunyanItem.logTurner.id, var2 * 5);
    }

    public void activate()
    {
        try
        {
            Class var1 = Class.forName("EEProxy");
            Class[] var2 = new Class[] {Integer.TYPE, Integer.TYPE, Integer.TYPE};
            setEMC = var1.getMethod("setEMC", var2);
            Class[] var3 = new Class[] {ItemStack.class};
            getEMC = var1.getMethod("getEMC", var3);
        }
        catch (Exception var4)
        {
            ModLoader.getLogger().fine("Could not find EE proxy.");
            return;
        }

        setEMCValues();
    }
}
