package com.goldenapple.coppertools.init;
import com.goldenapple.coppertools.CopperTools;
import com.goldenapple.coppertools.config.ConfigHandler;
import com.goldenapple.coppertools.reference.Names;
import com.goldenapple.coppertools.reference.Reference;
import com.goldenapple.coppertools.util.MiscHelper;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.ShapedOreRecipe;
public class Recipes {
public static void init(){
if (ConfigHandler.loadSaber){
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(GameRegistry.findItem(Reference.MOD_ID, Names.WOOD_KATANA)),
"i",
"i",
"s", 'i', "logWood", 's', "stickWood"));
}
if(ConfigHandler.loadObsidianRod) {
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.obsidianRod, 4),
"o",
"o", 'o', "obsidian"));
}
if(ConfigHandler.loadObsidianRod) {
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.obsidianRod, 4),
"o",
"o", 'o', Blocks.obsidian));
}
registerRecipes(EquipMaterial.copper);
registerRecipes(EquipMaterial.platinum);
registerRecipes(EquipMaterial.lead);
registerRecipes(EquipMaterial.silver);
registerRecipes(EquipMaterial.emerald);
if(CopperTools.isPneumaticLoaded) registerRecipes(EquipMaterial.compressed);
if(CopperTools.isTELoaded) registerRecipes(EquipMaterial.enderium);
if(CopperTools.isBluePowerLoaded){
registerRecipes(EquipMaterial.ruby);
registerRecipes(EquipMaterial.sapphire);
registerRecipes(EquipMaterial.amethyst);
}
if(ConfigHandler.loadSickles) {
if(ConfigHandler.loadVanillaSickles){
registerSickleRecipes("wood", "plankWood", false);
registerSickleRecipes("stone", "cobblestone", false);
registerSickleRecipes("iron", "ingotIron", false);
registerSickleRecipes("diamond", "gemDiamond", false);
registerSickleRecipes("gold", "ingotGold", false);
}
if(ConfigHandler.loadBrassSickle) registerSickleRecipes("brass", "ingotBrass", false);
if(ConfigHandler.loadGildedSickle && CopperTools.isSteamPowerLoaded) registerSickleRecipes("gilded", new ItemStack(GameRegistry.findItem("Steamcraft", "steamcraftIngot"), 1, 3), false);
if(ConfigHandler.loadThaumiumSickle && CopperTools.isThaumcraftLoaded) registerSickleRecipes("thaumium", "ingotThaumium", false);
if(ConfigHandler.loadVoidSickle && CopperTools.isThaumcraftLoaded) registerSickleRecipes("void", "ingotVoid", false);
if(ConfigHandler.loadManasteelSickle && CopperTools.isBotaniaLoaded) GameRegistry.addRecipe(new ShapedOreRecipe(GameRegistry.findItem(Reference.MOD_ID, "manasteel_sickle"),
" i ",
" i",
"si ", 'i', "ingotManasteel", 's', "livingwoodTwig").setMirrored(true));
if(ConfigHandler.loadElementiumSickle && CopperTools.isBotaniaLoaded) GameRegistry.addRecipe(new ShapedOreRecipe(GameRegistry.findItem(Reference.MOD_ID, "elementium_sickle"),
" i ",
" i",
"si ", 'i', "ingotElvenElementium", 's', "dreamwoodTwig").setMirrored(true));
ItemStack ironwoodSickle = new ItemStack(GameRegistry.findItem(Reference.MOD_ID, "ironwood_sickle"));
ironwoodSickle.addEnchantment(Enchantment.unbreaking, 1);
if(ConfigHandler.loadIronwoodSickle && CopperTools.isTwilightLoaded) GameRegistry.addRecipe(new ShapedOreRecipe(ironwoodSickle,
" i ",
" i",
"si ", 'i', "ironwood", 's', "stickWood").setMirrored(true));
ItemStack steeleafSickle = new ItemStack(GameRegistry.findItem(Reference.MOD_ID, "steeleaf_sickle"));
steeleafSickle.addEnchantment(Enchantment.unbreaking, 2);
if(ConfigHandler.loadSteeleafSickle && CopperTools.isTwilightLoaded) GameRegistry.addRecipe(new ShapedOreRecipe(steeleafSickle,
" i ",
" i",
"si ", 'i', "steeleaf", 's', "stickWood").setMirrored(true));
}
}
public static void postInit(){
if(CopperTools.isPneumaticLoaded && ConfigHandler.changePneumaticHelmetRecipe && EquipMaterial.compressed.enabled){
ItemStack airCanister = new ItemStack(GameRegistry.findItem("PneumaticCraft", "airCanister"));
ItemStack PCB = new ItemStack(GameRegistry.findItem("PneumaticCraft", "printedCircuitBoard"));
ItemStack helmet = new ItemStack(GameRegistry.findItem(Reference.MOD_ID, "compressed_helmet"));
airCanister.setItemDamage(30000);
MiscHelper.deleteRecipes(GameRegistry.findItem("PneumaticCraft", "pneumaticHelmet"));
GameRegistry.addRecipe(new ShapedOreRecipe(GameRegistry.findItem("PneumaticCraft", "pneumaticHelmet"),
"cbc",
"chc", 'c', airCanister, 'b', PCB, 'h', helmet));
}
}
private static void registerRecipes(EquipMaterial material){
if(material.enabled) {
if (material.repairMat instanceof ItemStack) {
registerToolRecipes(material.name, (ItemStack) material.repairMat, material.useObsidian);
if (ConfigHandler.loadSickles) {
registerSickleRecipes(material.name, (ItemStack) material.repairMat, material.useObsidian);
}
registerArmorRecipes(material.name, (ItemStack) material.repairMat);
} else if (material.repairMat instanceof String) {
registerToolRecipes(material.name, (String) material.repairMat, material.useObsidian);
if (ConfigHandler.loadSickles) {
registerSickleRecipes(material.name, (String) material.repairMat, material.useObsidian);
}
registerArmorRecipes(material.name, (String) material.repairMat);
}
}
}
private static void registerToolRecipes(String matName, String material, boolean useObsidian){
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(GameRegistry.findItem(Reference.MOD_ID, matName + "_pickaxe")),
"iii",
" s ",
" s ", 'i', material, 's', useObsidian ? "rodObsidian" : "stickWood"));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(GameRegistry.findItem(Reference.MOD_ID, matName + "_sword")),
"i",
"i",
"s", 'i', material, 's', useObsidian ? "rodObsidian" : "stickWood"));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(GameRegistry.findItem(Reference.MOD_ID, matName + "_axe")),
"ii",
"is",
" s", 'i', material, 's', useObsidian ? "rodObsidian" : "stickWood").setMirrored(true));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(GameRegistry.findItem(Reference.MOD_ID, matName + "_shovel")),
"i",
"s",
"s", 'i', material, 's', useObsidian ? "rodObsidian" : "stickWood"));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(GameRegistry.findItem(Reference.MOD_ID, matName + "_hoe")),
"ii",
" s",
" s", 'i', material, 's', useObsidian ? "rodObsidian" : "stickWood").setMirrored(true));
}
private static void registerToolRecipes(String matName, ItemStack material, boolean useObsidian){
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(GameRegistry.findItem(Reference.MOD_ID, matName + "_pickaxe")),
"iii",
" s ",
" s ", 'i', material, 's', useObsidian ? "rodObsidian" : "stickWood"));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(GameRegistry.findItem(Reference.MOD_ID, matName + "_sword")),
"i",
"i",
"s", 'i', material, 's', useObsidian ? "rodObsidian" : "stickWood"));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(GameRegistry.findItem(Reference.MOD_ID, matName + "_axe")),
"ii",
"is",
" s", 'i', material, 's', useObsidian ? "rodObsidian" : "stickWood").setMirrored(true));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(GameRegistry.findItem(Reference.MOD_ID, matName + "_shovel")),
"i",
"s",
"s", 'i', material, 's', useObsidian ? "rodObsidian" : "stickWood"));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(GameRegistry.findItem(Reference.MOD_ID, matName + "_hoe")),
"ii",
" s",
" s", 'i', material, 's', useObsidian ? "rodObsidian" : "stickWood").setMirrored(true));
}
private static void registerArmorRecipes(String matName, String material){
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(GameRegistry.findItem(Reference.MOD_ID, matName + "_helmet")),
"iii",
"i i", 'i', material));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(GameRegistry.findItem(Reference.MOD_ID, matName + "_chestplate")),
"i i",
"iii",
"iii", 'i', material));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(GameRegistry.findItem(Reference.MOD_ID, matName + "_leggings")),
"iii",
"i i",
"i i", 'i', material));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(GameRegistry.findItem(Reference.MOD_ID, matName + "_boots")),
"i i",
"i i", 'i', material));
}
private static void registerArmorRecipes(String matName, ItemStack material){
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(GameRegistry.findItem(Reference.MOD_ID, matName + "_helmet")),
"iii",
"i i", 'i', material));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(GameRegistry.findItem(Reference.MOD_ID, matName + "_chestplate")),
"i i",
"iii",
"iii", 'i', material));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(GameRegistry.findItem(Reference.MOD_ID, matName + "_leggings")),
"iii",
"i i",
"i i", 'i', material));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(GameRegistry.findItem(Reference.MOD_ID, matName + "_boots")),
"i i",
"i i", 'i', material));
}
private static void registerSickleRecipes(String matName, String material, boolean useObsidian) {
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(GameRegistry.findItem(Reference.MOD_ID, matName + "_sickle")),
" i ",
" i",
"si ", 'i', material, 's', useObsidian ? "rodObsidian" : "stickWood").setMirrored(true));
}
private static void registerSickleRecipes(String matName, ItemStack material, boolean useObsidian) {
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(GameRegistry.findItem(Reference.MOD_ID, matName + "_sickle")),
" i ",
" i",
"si ", 'i', material, 's', useObsidian ? "rodObsidian" : "stickWood").setMirrored(true));
}
}