From c22c3fb9be6e773d732d123866f7d00b629843a5 Mon Sep 17 00:00:00 2001 From: DarkGuardsman Date: Fri, 25 Oct 2013 21:57:08 -0400 Subject: [PATCH] Added to the ore parser and added configs for it Since i added way to force other mods items to convert to mine i added config to prevent this. In the rare case that a mod has an oreXXX that doesn't convert to ingotXXX --- src/dark/api/ProcessorRecipes.java | 34 ++++++++++++++++++++++++++--- src/dark/core/common/DarkMain.java | 1 + src/dark/core/prefab/ModPrefab.java | 1 - 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/dark/api/ProcessorRecipes.java b/src/dark/api/ProcessorRecipes.java index 36dbe668..6634e798 100644 --- a/src/dark/api/ProcessorRecipes.java +++ b/src/dark/api/ProcessorRecipes.java @@ -8,12 +8,14 @@ import java.util.Random; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.FurnaceRecipes; +import net.minecraftforge.common.Configuration; import net.minecraftforge.oredict.OreDictionary; import com.builtbroken.common.Pair; +import cpw.mods.fml.common.registry.GameRegistry; import dark.core.common.CoreRecipeLoader; -import dark.core.common.DarkMain; import dark.core.common.items.EnumMaterial; import dark.core.common.items.EnumOrePart; import dark.core.common.items.ItemOreDirv; @@ -261,7 +263,7 @@ public class ProcessorRecipes return reList; } - public static void parseOreNames() + public static void parseOreNames(Configuration config) { if (!loadedOres && CoreRecipeLoader.itemMetals instanceof ItemOreDirv) { @@ -283,6 +285,16 @@ public class ProcessorRecipes //ore List ores = OreDictionary.getOres("ore" + mat.simpleName); ingots.addAll(OreDictionary.getOres(mat.simpleName + "ore")); + //dust + List dusts = OreDictionary.getOres("dust" + mat.simpleName); + ingots.addAll(OreDictionary.getOres(mat.simpleName + "dust")); + for (ItemStack du : dusts) + { + if (mat.shouldCreateItem(EnumOrePart.INGOTS) && config.get("OreParser", "OverrideDustSmelthing", true).getBoolean(true)) + { + FurnaceRecipes.smelting().addSmelting(du.itemID, du.getItemDamage(), mat.getStack(EnumOrePart.INGOTS, 1), 0.6f); + } + } for (ItemStack ing : ingots) { @@ -296,6 +308,10 @@ public class ProcessorRecipes ProcessorRecipes.createSalvageDamageOutput(ProcessorType.CRUSHER, ing, scraps); ProcessorRecipes.createSalvageDamageOutput(ProcessorType.CRUSHER, ing, scraps); } + if (mat.shouldCreateItem(EnumOrePart.INGOTS)) + { + GameRegistry.addShapelessRecipe(mat.getStack(EnumOrePart.INGOTS, 1), new Object[] { ing }); + } } for (ItemStack pla : plates) { @@ -313,6 +329,14 @@ public class ProcessorRecipes ProcessorRecipes.createSalvageDamageOutput(ProcessorType.CRUSHER, pla, scraps); scraps.stackSize = 1; } + if (mat.shouldCreateItem(EnumOrePart.PLATES)) + { + GameRegistry.addShapelessRecipe(mat.getStack(EnumOrePart.PLATES, 1), new Object[] { pla }); + if (config.get("OreParser", "ForcePlateToIngotDM", true).getBoolean(true)) + { + GameRegistry.addShapelessRecipe(mat.getStack(EnumOrePart.INGOTS, 4), new Object[] { pla }); + } + } } for (ItemStack ore : ores) { @@ -322,12 +346,16 @@ public class ProcessorRecipes ProcessorRecipes.createRecipe(ProcessorType.CRUSHER, ore, rubble); rubble.stackSize = 1; } - if(mat.shouldCreateItem(EnumOrePart.DUST)) + if (mat.shouldCreateItem(EnumOrePart.DUST)) { dust.stackSize = 2; ProcessorRecipes.createRecipe(ProcessorType.GRINDER, ore, dust); dust.stackSize = 1; } + if (mat.shouldCreateItem(EnumOrePart.INGOTS) && config.get("OreParser", "OverrideOreSmelthing", true).getBoolean(true)) + { + FurnaceRecipes.smelting().addSmelting(ore.itemID, ore.getItemDamage(), mat.getStack(EnumOrePart.INGOTS, 1), 0.6f); + } } } diff --git a/src/dark/core/common/DarkMain.java b/src/dark/core/common/DarkMain.java index 69d6e8b8..120e02ea 100644 --- a/src/dark/core/common/DarkMain.java +++ b/src/dark/core/common/DarkMain.java @@ -229,6 +229,7 @@ public class DarkMain extends ModPrefab { DMCreativeTab.tabIndustrial.itemStack = EnumMaterial.getStack(EnumMaterial.IRON, EnumOrePart.GEARS, 1); } + ProcessorRecipes.parseOreNames(CONFIGURATION); } @Override diff --git a/src/dark/core/prefab/ModPrefab.java b/src/dark/core/prefab/ModPrefab.java index a625eaae..3bf579d9 100644 --- a/src/dark/core/prefab/ModPrefab.java +++ b/src/dark/core/prefab/ModPrefab.java @@ -103,7 +103,6 @@ public abstract class ModPrefab @EventHandler public void postInit(FMLPostInitializationEvent event) { - ProcessorRecipes.parseOreNames(); this.loadRecipes(); }