ForgePatch/patches/common/net/minecraft/src/FurnaceRecipes.java.patch

63 lines
1.9 KiB
Diff
Raw Normal View History

--- ../src_base/common/net/minecraft/src/FurnaceRecipes.java
+++ ../src_work/common/net/minecraft/src/FurnaceRecipes.java
@@ -1,5 +1,6 @@
package net.minecraft.src;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
@@ -10,6 +11,7 @@
/** The list of smelting results. */
private Map smeltingList = new HashMap();
private Map field_77605_c = new HashMap();
+ private Map metaSmeltingList = new HashMap();
/**
* Used to call methods addSmelting and getSmeltingResult.
@@ -50,7 +52,9 @@
/**
* Returns the smelting result of an item.
+ * Deprecated in favor of a metadata sensitive version
*/
+ @Deprecated
public ItemStack getSmeltingResult(int par1)
{
return (ItemStack)this.smeltingList.get(Integer.valueOf(par1));
@@ -65,4 +69,34 @@
{
return this.field_77605_c.containsKey(Integer.valueOf(par1)) ? ((Float)this.field_77605_c.get(Integer.valueOf(par1))).floatValue() : 0.0F;
}
+
+ /**
+ * Add a metadata-sensitive furnace recipe
+ * @param itemID The Item ID
+ * @param metadata The Item Metadata
+ * @param itemstack The ItemStack for the result
+ */
+ public void addSmelting(int itemID, int metadata, ItemStack itemstack)
+ {
+ metaSmeltingList.put(Arrays.asList(itemID, metadata), itemstack);
+ }
+
+ /**
+ * Used to get the resulting ItemStack form a source ItemStack
+ * @param item The Source ItemStack
+ * @return The result ItemStack
+ */
+ public ItemStack getSmeltingResult(ItemStack item)
+ {
+ if (item == null)
+ {
+ return null;
+ }
+ ItemStack ret = (ItemStack)metaSmeltingList.get(Arrays.asList(item.itemID, item.getItemDamage()));
+ if (ret != null)
+ {
+ return ret;
+ }
+ return (ItemStack)smeltingList.get(Integer.valueOf(item.itemID));
+ }
}