From 5118106f9d9539c9dbba0af53bc66d3078ff3528 Mon Sep 17 00:00:00 2001 From: Calclavia Date: Mon, 24 Feb 2014 20:40:58 +0800 Subject: [PATCH] Fixed #268 - Recipe issues --- .../archaic/process/TileMillstone.java | 2 ++ .../resonantinduction/mechanical/Mechanical.java | 1 + .../api/recipe/RecipeResource.java | 9 ++++++--- .../core/resource/ResourceGenerator.java | 13 ++++++++++--- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/archaic/src/main/java/resonantinduction/archaic/process/TileMillstone.java b/archaic/src/main/java/resonantinduction/archaic/process/TileMillstone.java index 209c600d..9638fd48 100644 --- a/archaic/src/main/java/resonantinduction/archaic/process/TileMillstone.java +++ b/archaic/src/main/java/resonantinduction/archaic/process/TileMillstone.java @@ -1,5 +1,7 @@ package resonantinduction.archaic.process; +import java.util.Map.Entry; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/Mechanical.java b/mechanical/src/main/java/resonantinduction/mechanical/Mechanical.java index 3aa387f3..4abb1381 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/Mechanical.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/Mechanical.java @@ -173,6 +173,7 @@ public class Mechanical GameRegistry.addRecipe(new ShapedOreRecipe(blockTank, "GGG", "GSG", "GGG", 'G', Block.glass, 'S', Item.ingotIron)); GameRegistry.addRecipe(new ShapedOreRecipe(blockGrate, "BBB", "B B", "BBB", 'B', Block.fenceIron)); + GameRegistry.addRecipe(new ShapedOreRecipe(blockPump, "PPP", "GGG", "PPP", 'P', itemPipe, 'G', itemGear)); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(itemPipe, 4), "BBB", " ", "BBB", 'B', UniversalRecipe.SECONDARY_METAL.get())); GameRegistry.addRecipe(new ShapedOreRecipe(itemPipeGuage, "RRR", "GGG", " S ", 'S', Item.stick, 'G', Block.glass, 'R', Item.redstone)); diff --git a/src/main/java/resonantinduction/api/recipe/RecipeResource.java b/src/main/java/resonantinduction/api/recipe/RecipeResource.java index 9e4312c9..a395001e 100644 --- a/src/main/java/resonantinduction/api/recipe/RecipeResource.java +++ b/src/main/java/resonantinduction/api/recipe/RecipeResource.java @@ -69,7 +69,7 @@ public abstract class RecipeResource { return itemStack.copy(); } - + @Override public String toString() { @@ -108,8 +108,11 @@ public abstract class RecipeResource if (obj instanceof ItemStackResource) { - return OreDictionary.getOres(name).contains(((ItemStackResource) obj).itemStack); + for (ItemStack is : OreDictionary.getOres(name).toArray(new ItemStack[0])) + if (is.isItemEqual(((ItemStackResource) obj).itemStack)) + return true; } + if (obj instanceof ItemStack) { for (ItemStack is : OreDictionary.getOres(name).toArray(new ItemStack[0])) @@ -126,7 +129,7 @@ public abstract class RecipeResource { return OreDictionary.getOres(name).get(0).copy(); } - + @Override public String toString() { diff --git a/src/main/java/resonantinduction/core/resource/ResourceGenerator.java b/src/main/java/resonantinduction/core/resource/ResourceGenerator.java index 4298aa99..9acab27d 100644 --- a/src/main/java/resonantinduction/core/resource/ResourceGenerator.java +++ b/src/main/java/resonantinduction/core/resource/ResourceGenerator.java @@ -45,6 +45,12 @@ public class ResourceGenerator { public static final ResourceGenerator INSTANCE = new ResourceGenerator(); public static final Set oreDictBlackList = new HashSet(); + + /** + * A list of material names. They are all camelCase reference of ore dictionary names without + * the + * "ore" or "ingot" prefix. + */ public static final List materialNames = new ArrayList(); public static final HashMap materialColors = new HashMap(); private static final HashMap iconColorMap = new HashMap(); @@ -59,15 +65,16 @@ public class ResourceGenerator { if (evt.Name.startsWith("ingot") && !oreDictBlackList.contains(evt.Name)) { - String materialName = evt.Name.replace("ingot", ""); + String oreDictName = evt.Name.replace("ingot", ""); + String materialName = LanguageUtility.decapitalizeFirst(oreDictName); if (!materialNames.contains(materialName)) { Settings.CONFIGURATION.load(); - boolean allowMaterial = Settings.CONFIGURATION.get("Resource_Generator", "Enable " + materialName, true).getBoolean(true); + boolean allowMaterial = Settings.CONFIGURATION.get("Resource_Generator", "Enable " + oreDictName, true).getBoolean(true); Settings.CONFIGURATION.save(); - if (!allowMaterial && OreDetectionBlackList.isIngotBlackListed("ingot" + materialName) || OreDetectionBlackList.isOreBlackListed("ore" + materialName)) + if (!allowMaterial && OreDetectionBlackList.isIngotBlackListed("ingot" + oreDictName) || OreDetectionBlackList.isOreBlackListed("ore" + oreDictName)) return; materialNames.add(materialName);