From 08086687429cd47850eb3430fc1ec497054c511b Mon Sep 17 00:00:00 2001 From: DarkGuardsman Date: Thu, 12 Dec 2013 10:40:18 -0500 Subject: [PATCH] Worked on ore dictionary support --- .../api/reciepes/MachineRecipeHandler.java | 8 +-- src/dark/core/basics/EnumMaterial.java | 32 ++++++++--- src/dark/core/basics/ItemOreDirv.java | 9 ++-- src/dark/machines/DarkMain.java | 53 ++----------------- 4 files changed, 38 insertions(+), 64 deletions(-) diff --git a/src/dark/api/reciepes/MachineRecipeHandler.java b/src/dark/api/reciepes/MachineRecipeHandler.java index c7d911ba2..591a8674a 100644 --- a/src/dark/api/reciepes/MachineRecipeHandler.java +++ b/src/dark/api/reciepes/MachineRecipeHandler.java @@ -303,7 +303,7 @@ public class MachineRecipeHandler public static void parseOreNames(Configuration config) { - if (!loadedOres && CoreRecipeLoader.itemMetals instanceof ItemOreDirv) + if (!loadedOres && CoreRecipeLoader.itemMetals != null && config.get("Ore", "processOreDictionary", true, "Scans the ore dictionary and adds other mods ore to the machine recipes").getBoolean(true)) { for (EnumMaterial mat : EnumMaterial.values()) { //Ingots @@ -320,7 +320,7 @@ public class MachineRecipeHandler dusts.addAll(OreDictionary.getOres(mat.simpleName + "dust")); for (ItemStack du : dusts) { - if (mat.shouldCreateItem(EnumOrePart.INGOTS) && config.get("OreParser", "OverrideDustSmelthing", true).getBoolean(true)) + if (mat.shouldCreateItem(EnumOrePart.INGOTS) && config.get("Ore", "OverrideDustSmelthing", true, "Overrides other mods dust smelting so the ingots smelt as the same item.").getBoolean(true)) { FurnaceRecipes.smelting().addSmelting(du.itemID, du.getItemDamage(), mat.getStack(EnumOrePart.INGOTS, 1), 0.6f); } @@ -362,7 +362,7 @@ public class MachineRecipeHandler if (mat.shouldCreateItem(EnumOrePart.PLATES)) { GameRegistry.addShapelessRecipe(mat.getStack(EnumOrePart.PLATES, 1), new Object[] { pla }); - if (config.get("OreParser", "ForcePlateToIngotDM", true).getBoolean(true)) + if (config.get("Ore", "OverridePlateCrafting", true, "Overrides other mods metal plate crafting. As well creates new recipes for mod ingots without plate crafting.").getBoolean(true)) { GameRegistry.addShapelessRecipe(mat.getStack(EnumOrePart.INGOTS, 4), new Object[] { pla }); } @@ -378,7 +378,7 @@ public class MachineRecipeHandler { MachineRecipeHandler.newProcessorRecipe(ProcessorType.GRINDER, ore, mat.getStack(EnumOrePart.DUST, 1), 1, 3); } - if (mat.shouldCreateItem(EnumOrePart.INGOTS) && config.get("OreParser", "OverrideOreSmelthing", true).getBoolean(true)) + if (mat.shouldCreateItem(EnumOrePart.INGOTS) && config.get("Ore", "OverrideOreSmelthing", true, "Overrides other mods smelting recipes for ingots").getBoolean(true)) { FurnaceRecipes.smelting().addSmelting(ore.itemID, ore.getItemDamage(), mat.getStack(EnumOrePart.INGOTS, 1), 0.6f); } diff --git a/src/dark/core/basics/EnumMaterial.java b/src/dark/core/basics/EnumMaterial.java index 51c06cb66..b55c93e66 100644 --- a/src/dark/core/basics/EnumMaterial.java +++ b/src/dark/core/basics/EnumMaterial.java @@ -79,10 +79,10 @@ public enum EnumMaterial * @param mat - material * @param part - part * @return new ItemStack created from the two enums as long as everything goes right */ - public static ItemStack getStack(EnumMaterial mat, EnumOrePart part, int ammount) + public static ItemStack getStack(Item item, EnumMaterial mat, EnumOrePart part, int ammount) { ItemStack reStack = null; - if (CoreRecipeLoader.itemMetals instanceof ItemOreDirv && mat != null && part != null) + if (mat != null && part != null) { if (part == EnumOrePart.INGOTS) { @@ -97,11 +97,16 @@ public enum EnumMaterial } int meta = mat.ordinal() * itemCountPerMaterial; meta += part.ordinal(); - return new ItemStack(CoreRecipeLoader.itemMetals.itemID, ammount, meta); + return new ItemStack(item, ammount, meta); } return reStack; } + public static ItemStack getStack(EnumMaterial mat, EnumOrePart part, int ammount) + { + return getStack(CoreRecipeLoader.itemMetals, mat, part, ammount); + } + public ItemStack getStack(EnumOrePart part) { return this.getStack(part, 1); @@ -112,6 +117,16 @@ public enum EnumMaterial return getStack(this, part, ammount); } + public ItemStack getStack(Item item, EnumOrePart part) + { + return this.getStack(item, part, 1); + } + + public ItemStack getStack(Item item, EnumOrePart part, int ammount) + { + return getStack(item, this, part, ammount); + } + public static Icon getIcon(int metadata) { int mat = metadata / EnumMaterial.itemCountPerMaterial; @@ -142,17 +157,22 @@ public enum EnumMaterial public static String getOreName(EnumMaterial mat, EnumOrePart part) { - return mat.simpleName + part.simpleName; + return mat.getOreName(part); } public String getOreName(EnumOrePart part) { - return this.simpleName + part.simpleName; + return this.simpleName.toLowerCase() + part.simpleName; + } + + public static String getOreNameReverse(EnumMaterial mat, EnumOrePart part) + { + return mat.getOreNameReverse(part); } public String getOreNameReverse(EnumOrePart part) { - return part.simpleName + this.simpleName; + return part.simpleName.toLowerCase() + this.simpleName; } public boolean shouldCreateItem(EnumOrePart part) diff --git a/src/dark/core/basics/ItemOreDirv.java b/src/dark/core/basics/ItemOreDirv.java index cf3e0b2a2..338e3ef66 100644 --- a/src/dark/core/basics/ItemOreDirv.java +++ b/src/dark/core/basics/ItemOreDirv.java @@ -102,14 +102,15 @@ public class ItemOreDirv extends ItemBasic implements IExtraItemInfo { for (EnumOrePart part : EnumOrePart.values()) { - ItemStack stack = EnumMaterial.getStack(mat, part, 1); - if (stack != null && mat.shouldCreateItem(part) && mat.itemIcons[part.ordinal()] != null) + if (mat.shouldCreateItem(part)) { - OreDictionary.registerOre(EnumOrePart.getFullName(stack.getItemDamage()), stack); + System.out.println(" N: " + mat.getOreName(part) + " R:" + mat.getOreNameReverse(part)); + String B = mat.getOreNameReverse(part); + OreDictionary.registerOre(mat.getOreName(part), mat.getStack(this, part, 1)); + OreDictionary.registerOre(mat.getOreNameReverse(part), mat.getStack(this, part, 1)); } } } - } @ForgeSubscribe diff --git a/src/dark/machines/DarkMain.java b/src/dark/machines/DarkMain.java index 7b9d95817..1e626e9e0 100644 --- a/src/dark/machines/DarkMain.java +++ b/src/dark/machines/DarkMain.java @@ -178,54 +178,6 @@ public class DarkMain extends ModPrefab if (CoreRecipeLoader.itemMetals != null) { MinecraftForge.EVENT_BUS.register(CoreRecipeLoader.itemMetals); - //Ore material recipe loop - for (EnumMaterial mat : EnumMaterial.values()) - { - if (mat.shouldCreateItem(EnumOrePart.INGOTS)) - { - OreDictionary.registerOre(mat.getOreName(EnumOrePart.INGOTS), mat.getStack(EnumOrePart.INGOTS, 1)); - OreDictionary.registerOre(mat.getOreNameReverse(EnumOrePart.INGOTS), mat.getStack(EnumOrePart.INGOTS, 1)); - } - if (mat.shouldCreateItem(EnumOrePart.RUBBLE)) - { - OreDictionary.registerOre(mat.getOreName(EnumOrePart.RUBBLE), mat.getStack(EnumOrePart.RUBBLE, 1)); - OreDictionary.registerOre(mat.getOreNameReverse(EnumOrePart.RUBBLE), mat.getStack(EnumOrePart.RUBBLE, 1)); - } - if (mat.shouldCreateItem(EnumOrePart.DUST)) - { - OreDictionary.registerOre(mat.getOreName(EnumOrePart.DUST), mat.getStack(EnumOrePart.DUST, 1)); - OreDictionary.registerOre(mat.getOreNameReverse(EnumOrePart.DUST), mat.getStack(EnumOrePart.DUST, 1)); - } - if (mat.shouldCreateItem(EnumOrePart.SCRAPS)) - { - - OreDictionary.registerOre(mat.getOreName(EnumOrePart.SCRAPS), mat.getStack(EnumOrePart.SCRAPS, 1)); - OreDictionary.registerOre(mat.getOreNameReverse(EnumOrePart.SCRAPS), mat.getStack(EnumOrePart.SCRAPS, 1)); - } - if (mat.shouldCreateItem(EnumOrePart.TUBE)) - { - OreDictionary.registerOre(mat.getOreName(EnumOrePart.TUBE), mat.getStack(EnumOrePart.TUBE, 1)); - OreDictionary.registerOre(mat.getOreNameReverse(EnumOrePart.TUBE), mat.getStack(EnumOrePart.TUBE, 1)); - - } - if (mat.shouldCreateItem(EnumOrePart.ROD)) - { - - OreDictionary.registerOre(mat.getOreName(EnumOrePart.ROD), mat.getStack(EnumOrePart.ROD, 1)); - OreDictionary.registerOre(mat.getOreNameReverse(EnumOrePart.ROD), mat.getStack(EnumOrePart.ROD, 1)); - } - if (mat.shouldCreateItem(EnumOrePart.PLATES)) - { - OreDictionary.registerOre(mat.getOreName(EnumOrePart.PLATES), mat.getStack(EnumOrePart.PLATES, 1)); - OreDictionary.registerOre(mat.getOreNameReverse(EnumOrePart.PLATES), mat.getStack(EnumOrePart.PLATES, 1)); - } - if (mat.shouldCreateItem(EnumOrePart.GEARS)) - { - OreDictionary.registerOre(mat.getOreName(EnumOrePart.GEARS), mat.getStack(EnumOrePart.GEARS, 1)); - OreDictionary.registerOre(mat.getOreNameReverse(EnumOrePart.GEARS), mat.getStack(EnumOrePart.GEARS, 1)); - } - - } } FMLLog.info(" Loaded: " + TranslationHelper.loadLanguages(LANGUAGE_PATH, LANGUAGES_SUPPORTED) + " Languages."); proxy.init(); @@ -246,6 +198,7 @@ public class DarkMain extends ModPrefab DMCreativeTab.tabIndustrial.itemStack = EnumMaterial.getStack(EnumMaterial.IRON, EnumOrePart.GEARS, 1); } MachineRecipeHandler.parseOreNames(CONFIGURATION); + CONFIGURATION.save(); } @Override @@ -294,8 +247,8 @@ public class DarkMain extends ModPrefab CoreRecipeLoader.itemDiggingTool = ModObjectRegistry.createNewItem("ItemDiggingTools", DarkMain.MOD_ID, ItemCommonTool.class, true); CoreRecipeLoader.itemVehicleTest = ModObjectRegistry.createNewItem("ItemVehicleTest", DarkMain.MOD_ID, ItemVehicleSpawn.class, true); CoreRecipeLoader.itemFluidCan = ModObjectRegistry.createNewItem("ItemFluidCan", DarkMain.MOD_ID, ItemFluidCan.class, true); - - CONFIGURATION.save(); + //Config saves in post init to allow for other feature to access it + } @Override