package com.zivilon.cinder_loe;

import cpw.mods.fml.common.registry.GameRegistry;
import lotr.common.LOTRMod;
import lotr.common.recipe.*;
import com.zivilon.cinder_loe.CinderLoE;
import com.zivilon.cinder_loe.mixins.MixinLOTRBrewingRecipes;
import com.zivilon.cinder_loe.recipe.CinderBrewingRecipes;

import lotr.common.item.LOTRItemFood;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.ShapedOreRecipe;
import net.minecraftforge.oredict.ShapelessOreRecipe;
import net.minecraftforge.oredict.RecipeSorter;
import net.minecraftforge.oredict.RecipeSorter.Category;

import static lotr.common.recipe.LOTRBrewingRecipes.BARREL_CAPACITY;
import static lotr.common.recipe.LOTRRecipes.uncraftableUnsmeltingRecipes;

public class recipes {


    public static void registerRecipes() {
        // Register a block recipe
        System.out.println("[CinderLoE] Registering recipes...");
        registerGeneralRecipes();
        registerRedDwarvenRecipes();
        registerLimwaithRecipes();
        registerBreeRecipes();
        registerArnorRecipes();
        registerAngmarRecipes();
        registerBrewingRecipes();
        registerMillstoneRecipes();
        registerSmeltingRecipes();
        registerLindonRecipes();
        registerDaleRecipes();
    }

    public static void registerGeneralRecipes() {
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.bowAsh), " XS", "X S", " XS",
                'X', CinderLoE.ingotAsh, 'S', Items.string));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.spearAsh), "  X", " Y ", "Y  ",
                'X', CinderLoE.ingotAsh, 'Y', "stickWood"));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.swordAsh), " X ", " X ", " Y ",
                'X', CinderLoE.ingotAsh, 'Y', "stickWood"));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.staffAsh), " XX", " YX", "Y  ",
                'X', CinderLoE.ingotAsh, 'Y', "stickWood"));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.battleaxeAsh), "XXX", "XYX", " Y ",
                'X', CinderLoE.ingotAsh, 'Y', "stickWood"));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.pikeAsh), "  X", " YX", "Y  ",
                'X', CinderLoE.ingotAsh, 'Y', "stickWood"));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.hammerAsh), "XYX", "XYX", " Y ",
                'X', CinderLoE.ingotAsh, 'Y', "stickWood"));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.daggerAsh), "X ", "Y ",
                'X', CinderLoE.ingotAsh, 'Y', "stickWood"));

        GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(new ItemStack(CinderLoE.bowAsh), new Object[] { " XS", "X S", " XS",
                Character.valueOf('X'), CinderLoE.ingotAsh, Character.valueOf('S'), Items.string }));
        GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(new ItemStack(CinderLoE.spearAsh), new Object[] { "  X", " Y ", "Y  ",
                Character.valueOf('X'), CinderLoE.ingotAsh, Character.valueOf('Y'), "stickWood" }));
        GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(new ItemStack(CinderLoE.swordAsh), new Object[] { " X ", " X ", " Y ",
                Character.valueOf('X'), CinderLoE.ingotAsh, Character.valueOf('Y'), "stickWood" }));
        GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(new ItemStack(CinderLoE.staffAsh), new Object[] { " XX", " YX", "Y  ",
                Character.valueOf('X'), CinderLoE.ingotAsh, Character.valueOf('Y'), "stickWood" }));
        GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(new ItemStack(CinderLoE.battleaxeAsh), new Object[] { "XXX", "XYX", " Y ",
                Character.valueOf('X'), CinderLoE.ingotAsh, Character.valueOf('Y'), "stickWood" }));
        GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(new ItemStack(CinderLoE.pikeAsh), new Object[] { "  X", " YX", "Y  ",
                Character.valueOf('X'), CinderLoE.ingotAsh, Character.valueOf('Y'), "stickWood" }));
        GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(new ItemStack(CinderLoE.hammerAsh), new Object[] { "XYX", "XYX", " Y ",
                Character.valueOf('X'), CinderLoE.ingotAsh, Character.valueOf('Y'), "stickWood" }));
        GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(new ItemStack(CinderLoE.daggerAsh), new Object[] { "X ", "Y ",
                Character.valueOf('X'), CinderLoE.ingotAsh, Character.valueOf('Y'), "stickWood" }));

        GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(new ItemStack(CinderLoE.warDart, 1, 0), new Object[] { " Y", "X ",
                Character.valueOf('X'), "feather", Character.valueOf('Y'), "stickWood" }));

        GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(new ItemStack(CinderLoE.warDart, 1, 0), new Object[] { " Y", "X ",
                Character.valueOf('X'), "feather", Character.valueOf('Y'), "stickWood" }));

        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.spicedHam), CinderLoE.spice, Items.cooked_porkchop));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDartHeads, 2, 1), LOTRMod.copper, new ItemStack(LOTRMod.chisel, 1, OreDictionary.WILDCARD_VALUE)));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDartHeads, 2, 2), LOTRMod.bronze, new ItemStack(LOTRMod.chisel, 1, OreDictionary.WILDCARD_VALUE)));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDartHeads, 2, 3), Items.iron_ingot, new ItemStack(LOTRMod.chisel, 1, OreDictionary.WILDCARD_VALUE)));
//        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDartHeads, 2, 4), LOTRMod.orcSteel, new ItemStack(LOTRMod.chisel, 1, OreDictionary.WILDCARD_VALUE)));
//        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDartHeads, 2, 5), LOTRMod.dwarfSteel, new ItemStack(LOTRMod.chisel, 1, OreDictionary.WILDCARD_VALUE)));
//        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDartHeads, 2, 6), LOTRMod.urukSteel, new ItemStack(LOTRMod.chisel, 1, OreDictionary.WILDCARD_VALUE)));
//        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDartHeads, 2, 7), LOTRMod.blueDwarfSteel, new ItemStack(LOTRMod.chisel, 1, OreDictionary.WILDCARD_VALUE)));
//        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDartHeads, 2, 8), LOTRMod.blackUrukSteel, new ItemStack(LOTRMod.chisel, 1, OreDictionary.WILDCARD_VALUE)));
//        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDartHeads, 2, 9), LOTRMod.elfSteel, new ItemStack(LOTRMod.chisel, 1, OreDictionary.WILDCARD_VALUE)));
//        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDartHeads, 2, 10), LOTRMod.gildedIron, new ItemStack(LOTRMod.chisel, 1, OreDictionary.WILDCARD_VALUE)));
//        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDartHeads, 2, 11), CinderLoE.redDwarfSteel, new ItemStack(LOTRMod.chisel, 1, OreDictionary.WILDCARD_VALUE)));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDartHeads, 2, 12), LOTRMod.mithril, new ItemStack(LOTRMod.chisel, 1, OreDictionary.WILDCARD_VALUE)));
//        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDartHeads, 2, 14), LOTRMod.morgulSteel, new ItemStack(LOTRMod.chisel, 1, OreDictionary.WILDCARD_VALUE)));

        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDart, 1, 1), new ItemStack(CinderLoE.warDart, 1, 0), new ItemStack(CinderLoE.warDartHeads, 1, 1)));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDart, 1, 2), new ItemStack(CinderLoE.warDart, 1, 0), new ItemStack(CinderLoE.warDartHeads, 1, 2)));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDart, 1, 3), new ItemStack(CinderLoE.warDart, 1, 0), new ItemStack(CinderLoE.warDartHeads, 1, 3)));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDart, 1, 4), new ItemStack(CinderLoE.warDart, 1, 0), new ItemStack(CinderLoE.warDartHeads, 1, 4)));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDart, 1, 5), new ItemStack(CinderLoE.warDart, 1, 0), new ItemStack(CinderLoE.warDartHeads, 1, 5)));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDart, 1, 6), new ItemStack(CinderLoE.warDart, 1, 0), new ItemStack(CinderLoE.warDartHeads, 1, 6)));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDart, 1, 7), new ItemStack(CinderLoE.warDart, 1, 0), new ItemStack(CinderLoE.warDartHeads, 1, 7)));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDart, 1, 8), new ItemStack(CinderLoE.warDart, 1, 0), new ItemStack(CinderLoE.warDartHeads, 1, 8)));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDart, 1, 9), new ItemStack(CinderLoE.warDart, 1, 0), new ItemStack(CinderLoE.warDartHeads, 1, 9)));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDart, 1, 10), new ItemStack(CinderLoE.warDart, 1, 0), new ItemStack(CinderLoE.warDartHeads, 1, 10)));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDart, 1, 11), new ItemStack(CinderLoE.warDart, 1, 0), new ItemStack(CinderLoE.warDartHeads, 1, 11)));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDart, 1, 12), new ItemStack(CinderLoE.warDart, 1, 0), new ItemStack(CinderLoE.warDartHeads, 1, 12)));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDart, 1, 13), new ItemStack(CinderLoE.warDart, 1, 0), new ItemStack(CinderLoE.warDartHeads, 1, 13)));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDart, 1, 14), new ItemStack(CinderLoE.warDart, 1, 0), new ItemStack(CinderLoE.warDartHeads, 1, 14)));

        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.spiceOrcish),
                new ItemStack(CinderLoE.spiceIngredient, 1, 0),
                new ItemStack(CinderLoE.spiceIngredient, 1, 1),
                new ItemStack(CinderLoE.spiceIngredient, 1, 2)));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.spiceHuman),
                new ItemStack(CinderLoE.spiceIngredient, 1, 3),
                new ItemStack(CinderLoE.spiceIngredient, 1, 4),
                new ItemStack(CinderLoE.spiceIngredient, 1, 5)));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.spiceElven),
                new ItemStack(CinderLoE.spiceIngredient, 1, 6),
                new ItemStack(CinderLoE.spiceIngredient, 1, 7),
                new ItemStack(CinderLoE.spiceIngredient, 1, 8)));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.spiceDwarven),
                new ItemStack(CinderLoE.spiceIngredient, 1, 9),
                new ItemStack(CinderLoE.spiceIngredient, 1, 10),
                new ItemStack(CinderLoE.spiceIngredient, 1, 11)));

        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.fieldRepairKit),
                new ItemStack(CinderLoE.forgingKit, 1, 0),
                new ItemStack(CinderLoE.forgingKit, 1, 1)));


        OreDictionary.registerOre("vegetable1", CinderLoE.onion);
        OreDictionary.registerOre("vegetable1", LOTRMod.leek);
        OreDictionary.registerOre("vegetable2", CinderLoE.cabbage);
        OreDictionary.registerOre("vegetable2", LOTRMod.lettuce);
        OreDictionary.registerOre("vegetable3", Items.carrot);
        OreDictionary.registerOre("vegetable3", Items.potato);
        OreDictionary.registerOre("vegetable3", LOTRMod.turnip);

        OreDictionary.registerOre("fruit1", Items.apple);
        OreDictionary.registerOre("fruit1", LOTRMod.pear);
        OreDictionary.registerOre("fruit1", LOTRMod.appleGreen);
        OreDictionary.registerOre("fruit1", LOTRMod.mango);
        OreDictionary.registerOre("fruit1", LOTRMod.orange);
        OreDictionary.registerOre("fruit2", LOTRMod.cherry);
        OreDictionary.registerOre("fruit2", Items.melon);
        OreDictionary.registerOre("fruit2", LOTRMod.banana);
        OreDictionary.registerOre("fruit2", LOTRMod.pomegranate);
        OreDictionary.registerOre("fruit3", LOTRMod.blueberry);
        OreDictionary.registerOre("fruit3", LOTRMod.raspberry);
        OreDictionary.registerOre("fruit3", LOTRMod.cranberry);
        OreDictionary.registerOre("fruit3", LOTRMod.blackberry);
        OreDictionary.registerOre("fruit3", LOTRMod.grapeRed);
        OreDictionary.registerOre("fruit3", LOTRMod.grapeWhite);

        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.lightStew), Items.bowl, "vegetable1", "vegetable2", "vegetable3"));

        OreDictionary.registerOre("meat", Items.cooked_beef);
        OreDictionary.registerOre("meat", Items.cooked_chicken);
        OreDictionary.registerOre("meat", Items.cooked_porkchop);
        OreDictionary.registerOre("meat", LOTRMod.camelCooked);
        OreDictionary.registerOre("meat", LOTRMod.deerCooked);
        OreDictionary.registerOre("meat", LOTRMod.muttonCooked);
        OreDictionary.registerOre("meat", LOTRMod.lionCooked);
        OreDictionary.registerOre("meat", LOTRMod.rhinoCooked);
        OreDictionary.registerOre("meat", LOTRMod.rabbitCooked);
        OreDictionary.registerOre("meat", LOTRMod.zebraCooked);

        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.fruitsalad), Items.bowl, "fruit1", "fruit2", "fruit3"));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.pasta, 4), new ItemStack(LOTRMod.rollingPin, 1, OreDictionary.WILDCARD_VALUE), CinderLoE.dough, CinderLoE.dough));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.halva), Items.sugar, CinderLoE.dough, CinderLoE.spice, LOTRMod.almond));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.doner_kebab), CinderLoE.flatbread, "vegetable2", CinderLoE.spice, LOTRMod.kebab));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.chocolatebar, 2), LOTRMod.mugChocolate));
        GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.pelmen), Items.wheat, "meat", LOTRMod.salt));
        GameRegistry.addRecipe(new LOTRRecipesPoisonDrinks());

        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.woodpanel, 4), "XY", "YX",
                'X', "logWood" , 'Y', "plankWood"));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.cinderBlock), "XXX", "XYX", "XXX",
                'X', Blocks.stone, 'Y', LOTRMod.balrogFire));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.reedBale), "XXX", "XXX", "XXX",
                'X', LOTRMod.reeds));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.leatherBundle), "XXX", "XXX", "XXX",
                'X', Items.leather));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.pretzel, 2), "XYX", " X ",
                'X', CinderLoE.dough, 'Y', LOTRMod.salt));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.dough, 8), "XXX", "XYX", "XXX",
                'X', CinderLoE.flour, 'Y', Items.water_bucket));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.fishBarrel), "XXX", "XXX", "XXX",
                'X', Items.fish));
        //GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(new ItemStack(CinderLoE.rustedsword, 8), new Object[] { "X", "y", "y",
        //Character.valueOf('Y'), Items.iron_ingot, Character.valueOf('X'), "stickWood"}));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.silverChain, 8), "X", "X", "X",
                'X', LOTRMod.silver));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.goldChain, 8), "X", "X", "X",
                'X', Items.gold_ingot));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.ironChain, 8), "X", "X", "X",
                'X', Items.iron_ingot));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.bronzeChain, 8), "X", "X", "X",
                'X', LOTRMod.bronze));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.cindercobble,  4, 0), "XX", "XX",
                'X', LOTRMod.cobblebrick));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.cutDrystone, 4), "XX", "XX",
                'X', new ItemStack(CinderLoE.cindercobble,  1, 0)));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(LOTRMod.cobblebrick, 4, 0), "XX", "XX",
                'X', CinderLoE.cutDrystone));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.reeflessCoral, 1), "X",
                'X', LOTRMod.coralReef));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.plaster, 4), "XYX", "YXY", "XYX",
                'X', Items.paper, 'Y', Blocks.clay));
        // Cinder Stony Blocks
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.cindercobble,  4, 1), "XY", "YX",
                'X', new ItemStack(LOTRMod.rock,  1, 0), 'Y', LOTRMod.mordorGravel));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.cindercobble, 4, 2), "XX", "XX",
                'X', new ItemStack(LOTRMod.silver)));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.cindercobble, 4, 3), "XX", "XX",
                'X', new ItemStack(CinderLoE.cindercobble, 1, 2)));

        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(LOTRMod.banner, 1, 44), " Y ", " X ", " Z ",
                'X', "stickWood", 'Y', new ItemStack(Blocks.wool, 1, 14), 'Z', "plankWood"));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(LOTRMod.banner, 1, 45), " Y ", " X ", " Z ",
                'X', "stickWood", 'Y', new ItemStack(Blocks.wool, 1, 11), 'Z', "plankWood"));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(LOTRMod.banner, 1, 46), " Y ", " X ", " Z ",
                'X', "stickWood", 'Y', new ItemStack(Blocks.wool, 1, 13), 'Z', "plankWood"));

        // Furs and then carpets
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.cinderfur, 2, 0), "XX", "XX",
                'X', new ItemStack(LOTRMod.fur, 1)));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.furCarpet, 3, 0), "XX",
                'X', new ItemStack(CinderLoE.cinderfur, 1, 0)));

        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.cinderfur, 2, 1), "XX", "XX",
                'X', new ItemStack(CinderLoE.cinderFurItem, 1, 0)));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.furCarpet, 3, 1), "XX",
                'X', new ItemStack(CinderLoE.cinderfur, 1, 1)));

        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.cinderfur, 2, 2), "XX", "XX",
                'X', new ItemStack(CinderLoE.cinderFurItem, 1, 1)));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.furCarpet, 3, 2), "XX",
                'X', new ItemStack(CinderLoE.cinderfur, 1, 2)));

        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.cinderfur, 2, 3), "XX", "XX",
                'X', new ItemStack(CinderLoE.cinderFurItem, 1, 2)));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.furCarpet, 3, 3), "XX",
                'X', new ItemStack(CinderLoE.cinderfur, 1, 3)));

        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.cinderfur, 2, 4), "XX", "XX",
                'X', new ItemStack(CinderLoE.cinderFurItem, 1, 3)));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.furCarpet, 3, 4), "XX",
                'X', new ItemStack(CinderLoE.cinderfur, 1, 4)));

        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.cinderfur, 2, 5), "XX", "XX",
                'X', new ItemStack(CinderLoE.cinderFurItem, 1, 4)));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.furCarpet, 3, 5), "XX",
                'X', new ItemStack(CinderLoE.cinderfur, 1, 5)));

        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.cinderfur, 2, 6), "XX", "XX",
                'X', new ItemStack(CinderLoE.cinderFurItem, 1, 5)));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.furCarpet, 3, 6), "XX",
                'X', new ItemStack(CinderLoE.cinderfur, 1, 6)));

        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.cinderfur, 2, 7), "XX", "XX",
                'X', new ItemStack(LOTRMod.lionFur, 1)));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.furCarpet, 3, 7), "XX",
                'X', new ItemStack(CinderLoE.cinderfur, 1, 7)));

        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.cinderfur, 2, 8), "XX", "XX",
                'X', new ItemStack(CinderLoE.cinderFurItem, 1, 6)));
        GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(CinderLoE.furCarpet, 3, 8), "XX",
                'X', new ItemStack(CinderLoE.cinderfur, 1, 8)));


    }
    public static void registerRedDwarvenRecipes() {
        LOTRRecipes.dwarvenRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.helmetRedDwarf), "XXX", "X X",
                Character.valueOf('X'), CinderLoE.redDwarfSteel));
        LOTRRecipes.dwarvenRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.bodyRedDwarf), "X X", "XXX", "XXX",
                Character.valueOf('X'), CinderLoE.redDwarfSteel));
        LOTRRecipes.dwarvenRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.legsRedDwarf), "XXX", "X X", "X X",
                Character.valueOf('X'), CinderLoE.redDwarfSteel));
        LOTRRecipes.dwarvenRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.bootsRedDwarf), "X X", "X X",
                Character.valueOf('X'), CinderLoE.redDwarfSteel));
        LOTRRecipes.dwarvenRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.spearRedDwarf), "  X", " Y ", "Y  ",
                Character.valueOf('X'), CinderLoE.redDwarfSteel, Character.valueOf('Y'), "stickWood"));
        LOTRRecipes.dwarvenRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.swordRedDwarf), " X ", " X ", " Y ",
                Character.valueOf('X'), CinderLoE.redDwarfSteel, Character.valueOf('Y'), "stickWood"));
        LOTRRecipes.dwarvenRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.battleaxeRedDwarf), "XXX", "XYX", " Y ",
                Character.valueOf('X'), CinderLoE.redDwarfSteel, Character.valueOf('Y'), "stickWood"));
        LOTRRecipes.dwarvenRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.pikeRedDwarf), "  X", " YX", "Y  ",
                Character.valueOf('X'), CinderLoE.redDwarfSteel, Character.valueOf('Y'), "stickWood"));
        LOTRRecipes.dwarvenRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.hammerRedDwarf), "XYX", "XYX", " Y ",
                Character.valueOf('X'), CinderLoE.redDwarfSteel, Character.valueOf('Y'), "stickWood"));
        LOTRRecipes.dwarvenRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.daggerRedDwarf), "X ", "Y ",
                Character.valueOf('X'), CinderLoE.redDwarfSteel, Character.valueOf('Y'), "stickWood"));
        LOTRRecipes.dwarvenRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.crossbowRedDwarf), "XXY", "ZYX", "YZX",
                Character.valueOf('X'), CinderLoE.redDwarfSteel, Character.valueOf('Y'), "stickWood", Character.valueOf('Z'), "string"));
        LOTRRecipes.dwarvenRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.boarArmorRedDwarf), "X  ", "XYX", "XXX",
                Character.valueOf('X'), CinderLoE.redDwarfSteel, Character.valueOf('Y'), "leather"));
        LOTRRecipes.dwarvenRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.blockRedDwarfSteel), "XXX", "XXX", "XXX",
                Character.valueOf('X'), CinderLoE.redDwarfSteel));
        LOTRRecipes.dwarvenRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.redDwarfSteel), "X ", "  ",
                Character.valueOf('X'), CinderLoE.redDwarfSteel));
        LOTRRecipes.dwarvenRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.chandelierRedDwarf, 2), " X ", "ZYZ", "   ",
                Character.valueOf('X'), "stickWood", Character.valueOf('Y'), CinderLoE.redDwarfSteel, Character.valueOf('Z'), Blocks.torch));
        LOTRRecipes.dwarvenRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.barsRedDwarf, 16), "XXX", "XXX", "   ",
                Character.valueOf('X'), CinderLoE.redDwarfSteel));
        LOTRRecipes.dwarvenRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.dwarvenBrickRuned, 4), " X ", "XYX", " X ",
                Character.valueOf('X'), new ItemStack(LOTRMod.brick, 1, 6), Character.valueOf('Y'), Items.gold_nugget));
        GameRegistry.addShapelessRecipe(new ItemStack(CinderLoE.redDwarfSteel, 9), new ItemStack(CinderLoE.blockRedDwarfSteel));
        GameRegistry.addRecipe(new ItemStack(CinderLoE.blockRedDwarfSteel, 1), "XXX", "XXX", "XXX",
                Character.valueOf('X'), CinderLoE.redDwarfSteel);
        LOTRRecipes.dwarvenRecipes.add(new ShapedOreRecipe(new ItemStack(LOTRMod.banner, 1, 42), " YR", " X ", " Z ",
                Character.valueOf('X'), "stickWood", Character.valueOf('Y'), Blocks.wool, Character.valueOf('Z'), "plankWood", Character.valueOf('R'), "dyeRed"));
        GameRegistry.addRecipe(new LOTRRecipePoisonWeapon(CinderLoE.daggerRedDwarf, CinderLoE.daggerRedDwarfPoisoned));
    }

    public static void registerLimwaithRecipes() {

        OreDictionary.registerOre("bone", Items.bone);
        OreDictionary.registerOre("bone", LOTRMod.elfBone);
        OreDictionary.registerOre("bone", LOTRMod.dwarfBone);
        OreDictionary.registerOre("bone", LOTRMod.hobbitBone);
        OreDictionary.registerOre("bone", LOTRMod.orcBone);
        OreDictionary.registerOre("bone", LOTRMod.trollBone);
        OreDictionary.registerOre("bone", LOTRMod.wargBone);

        LOTRRecipes.moredainRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.helmetLimwaith), "XXX", "Y Y",
                Character.valueOf('X'), LOTRMod.driedReeds, Character.valueOf('Y'), new ItemStack(LOTRMod.planks, 1, 15)));
        LOTRRecipes.moredainRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.bodyLimwaith), "X X", "YYY", "XXX",
                Character.valueOf('X'), LOTRMod.driedReeds, Character.valueOf('Y'), new ItemStack(LOTRMod.planks, 1, 15)));
        LOTRRecipes.moredainRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.legsLimwaith), "XXX", "Y Y", "X X",
                Character.valueOf('X'), LOTRMod.driedReeds, Character.valueOf('Y'), new ItemStack(LOTRMod.planks, 1, 15)));
        LOTRRecipes.moredainRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.bootsLimwaith), "Y Y", "X X",
                Character.valueOf('X'), LOTRMod.driedReeds, Character.valueOf('Y'), new ItemStack(LOTRMod.planks, 1, 15)));
        LOTRRecipes.moredainRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.spearLimwaith), "  X", " Y ", "Y  ",
                Character.valueOf('X'), "bone", Character.valueOf('Y'), "stickWood"));
        LOTRRecipes.moredainRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.truncheonLimwaith), " X ", " X ", " Y ",
                Character.valueOf('X'), "bone", Character.valueOf('Y'), "stickWood"));
        LOTRRecipes.moredainRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.battleaxeLimwaith), "XXX", "XYX", " Y ",
                Character.valueOf('X'), "bone", Character.valueOf('Y'), "stickWood"));
        LOTRRecipes.moredainRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.tridentLimwaith), " XX", " YX", "Y  ",
                Character.valueOf('X'), "bone", Character.valueOf('Y'), "stickWood"));
        LOTRRecipes.moredainRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.daggerLimwaith), "X ", "Y ",
                Character.valueOf('X'), "bone", Character.valueOf('Y'), "stickWood"));
        LOTRRecipes.moredainRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.blowgunLimwaith), "YXX", "   ", "   ",
                Character.valueOf('X'), LOTRMod.reeds, Character.valueOf('Y'), "stickWood"));
        GameRegistry.addRecipe(new LOTRRecipePoisonWeapon(CinderLoE.daggerLimwaith, CinderLoE.daggerLimwaithPoisoned));
        LOTRRecipes.moredainRecipes.add(new ShapelessOreRecipe(new ItemStack(CinderLoE.bonemold), "bone", new ItemStack(Items.dye, 1, 15), new ItemStack(Items.dye, 1, 15)));

        LOTRRecipes.moredainRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.helmetboneLimwaith), "XXX", "Y Y",
                Character.valueOf('X'), "bone", Character.valueOf('Y'), CinderLoE.bonemold));
        LOTRRecipes.moredainRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.bodyboneLimwaith), "X X", "YYY", "XXX",
                Character.valueOf('X'), "bone", Character.valueOf('Y'), CinderLoE.bonemold));
        LOTRRecipes.moredainRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.legsboneLimwaith), "XXX", "Y Y", "X X",
                Character.valueOf('X'), "bone", Character.valueOf('Y'), CinderLoE.bonemold));
        LOTRRecipes.moredainRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.bootsboneLimwaith), "Y Y", "X X",
                Character.valueOf('X'), "bone", Character.valueOf('Y'), CinderLoE.bonemold));
        LOTRRecipes.moredainRecipes.add(new ShapedOreRecipe(new ItemStack(LOTRMod.banner, 1, 43), " YR", " X ", " Z ",
                Character.valueOf('X'), "stickWood", Character.valueOf('Y'), Blocks.wool, Character.valueOf('Z'), "plankWood", Character.valueOf('R'), LOTRMod.reeds));
    }

    public static void registerBreeRecipes() {
        LOTRRecipes.breeRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.helmetBreeKettle), "XYX",
                Character.valueOf('X'), Items.iron_ingot, Character.valueOf('Y'), CinderLoE.helmetBree));
        LOTRRecipes.breeRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.helmetBree), "XXX", "X X",
                Character.valueOf('X'), Items.iron_ingot));
        LOTRRecipes.breeRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.bodyBree), "X X", "XXX", "XXX",
                Character.valueOf('X'), Items.iron_ingot));
        LOTRRecipes.breeRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.legsBree), "XXX", "X X", "X X",
                Character.valueOf('X'), Items.iron_ingot));
        LOTRRecipes.breeRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.bootsBree), "X X", "X X",
                Character.valueOf('X'), Items.iron_ingot));
        LOTRRecipes.breeRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.swordBree), " X ", " X ", " Y ",
                Character.valueOf('X'), Items.iron_ingot, Character.valueOf('Y'), "stickWood"));
    }

    public static void registerAngmarRecipes() {
        LOTRRecipes.angmarRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.helmetRhudaur), "XXX", "X X",
                Character.valueOf('X'), Items.iron_ingot));
        LOTRRecipes.angmarRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.bodyRhudaur), "X X", "XXX", "XXX",
                Character.valueOf('X'), Items.iron_ingot));
        LOTRRecipes.angmarRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.legsRhudaur), "XXX", "X X", "X X",
                Character.valueOf('X'), Items.iron_ingot));
        LOTRRecipes.angmarRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.bootsRhudaur), "X X", "X X",
                Character.valueOf('X'), Items.iron_ingot));
        LOTRRecipes.angmarRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.greatswordAngmar), "  X", " X ", "Y  ",
                Character.valueOf('X'), LOTRMod.orcSteel, Character.valueOf('Y'), "stickWood"));
    }

    public static void registerLindonRecipes() {
        LOTRRecipes.highElvenRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.greatswordLindon), "  X", " X ", "Y  ",
                Character.valueOf('X'), LOTRMod.elfSteel, Character.valueOf('Y'), "stickWood"));
    }
    public static void registerDaleRecipes() {
        LOTRRecipes.daleRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.greatswordDale), "  X", " X ", "Y  ",
                Character.valueOf('X'), Items.iron_ingot, Character.valueOf('Y'), "stickWood"));
    }

    public static void registerArnorRecipes() {
        LOTRRecipes.rangerRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.helmetArnorBanner), "YYY", "Y Y",
                Character.valueOf('X'), Items.iron_ingot, Character.valueOf('Y'), Items.leather));
        LOTRRecipes.rangerRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.bodyArnorBanner), "Y Y", "XXX", "YYY",
                Character.valueOf('X'), Items.iron_ingot, Character.valueOf('Y'), Items.leather));
        LOTRRecipes.rangerRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.legsArnorBanner), "YYY", "X X", "Y Y",
                Character.valueOf('X'), Items.iron_ingot, Character.valueOf('Y'), Items.leather));
        LOTRRecipes.rangerRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.bootsArnorBanner), "X X", "X X",
                Character.valueOf('X'), Items.iron_ingot, Character.valueOf('Y'), Items.leather));
        LOTRRecipes.rangerRecipes.add(new ShapedOreRecipe(new ItemStack(CinderLoE.maceArnor), " XX", " XX", "Y  ",
                Character.valueOf('X'), Items.iron_ingot, Character.valueOf('Y'), "stickWood"));
    }
    public static void registerBrewingRecipes() {
        System.out.println("[CinderLoE] Registering Brewing recipes... We like to drink! jk I hate alcohol");

                CinderBrewingRecipes.addCustomBrewingRecipe(new ItemStack(LOTRMod.mugTauredainCocoa, BARREL_CAPACITY),
                        new ItemStack(Items.dye, 1, 3),
                        new ItemStack(Items.dye, 1, 3),
                        new ItemStack(Items.dye, 1, 3),
                        new ItemStack(LOTRMod.doubleFlower, 1, 2),
                        new ItemStack(LOTRMod.doubleFlower, 1, 3),
                        new ItemStack(LOTRMod.mugMilk));
                CinderBrewingRecipes.addCustomBrewingRecipe(new ItemStack(CinderLoE.mugElfBrew, BARREL_CAPACITY),
                        new ItemStack(LOTRMod.elanor),
                        new ItemStack(LOTRMod.niphredil),
                        new ItemStack(LOTRMod.mallornNut),
                        new ItemStack(LOTRMod.mallornNut),
                        new ItemStack(CinderLoE.spiceElven),
                        new ItemStack(CinderLoE.spiceElven));
                CinderBrewingRecipes.addCustomBrewingRecipe(new ItemStack(CinderLoE.mugHumanBrew, BARREL_CAPACITY),
                        new ItemStack(LOTRMod.athelas),
                        new ItemStack(LOTRMod.athelas),
                        new ItemStack(LOTRMod.athelas),
                        new ItemStack(LOTRMod.athelas),
                        new ItemStack(CinderLoE.spiceHuman),
                        new ItemStack(CinderLoE.spiceHuman));
                CinderBrewingRecipes.addCustomBrewingRecipe(new ItemStack(CinderLoE.mugOrcBrew, BARREL_CAPACITY),
                        new ItemStack(LOTRMod.morgulShroom),
                        new ItemStack(LOTRMod.nauriteGem),
                        new ItemStack(LOTRMod.morgulShroom),
                        new ItemStack(LOTRMod.guldurilCrystal),
                        new ItemStack(CinderLoE.spiceOrcish),
                        new ItemStack(CinderLoE.spiceOrcish));
                CinderBrewingRecipes.addCustomBrewingRecipe(new ItemStack(CinderLoE.mugDwarfBrew, BARREL_CAPACITY),
                        new ItemStack(LOTRMod.dwarfHerb),
                        new ItemStack(LOTRMod.dwarfHerb),
                        new ItemStack(LOTRMod.dwarfHerb),
                        new ItemStack(LOTRMod.dwarfHerb),
                        new ItemStack(CinderLoE.spiceDwarven),
                        new ItemStack(CinderLoE.spiceDwarven));
    }

    public static void registerMillstoneRecipes() {
        System.out.println("[CinderLoE] Registering Millstone recipes...");

        LOTRMillstoneRecipes.addRecipe(Items.wheat, new ItemStack(CinderLoE.flour));
        LOTRMillstoneRecipes.addRecipe(LOTRMod.corn, new ItemStack(CinderLoE.flour));
    }

    public static void registerSmeltingRecipes() {
        System.out.println("[CinderLoE] Registering Smelting recipes...");

        GameRegistry.addSmelting(new ItemStack(CinderLoE.flour), new ItemStack(CinderLoE.flatbread), 0f);
    }

    public static void createUnsmeltingRecipes() {
        uncraftableUnsmeltingRecipes.add((IRecipe)new ShapedOreRecipe(new ItemStack(LOTRMod.utumnoBow), new Object[]{" XY", "X Y", " XY", Character.valueOf('X'), LOTRMod.orcSteel, Character.valueOf('Y'), Items.string}));

    }

}
