From 9fa40cb43240fa3d76c8e819eb5d22d14554e415 Mon Sep 17 00:00:00 2001 From: Eloraam Date: Wed, 21 Sep 2011 00:55:09 +0000 Subject: [PATCH] Metadata-sensitive smelting patch. --- forge/minecraft.patch | 144 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) diff --git a/forge/minecraft.patch b/forge/minecraft.patch index ff7f069d95..712e60e5c9 100644 --- a/forge/minecraft.patch +++ b/forge/minecraft.patch @@ -1308,6 +1308,57 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/Explosion } if(f1 > 0.0F) { +diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/FurnaceRecipes.java ../src_work/minecraft/net/minecraft/src/FurnaceRecipes.java +--- ../src_base/minecraft/net/minecraft/src/FurnaceRecipes.java 2011-09-19 16:32:52.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/FurnaceRecipes.java 2011-09-20 20:52:59.000000000 -0400 +@@ -6,6 +6,7 @@ + + import java.util.HashMap; + import java.util.Map; ++import java.util.Arrays; + + // Referenced classes of package net.minecraft.src: + // Block, ItemStack, Item +@@ -40,11 +41,32 @@ + smeltingList.put(Integer.valueOf(i), itemstack); + } + ++ /* FORGE: Add a metadata-sensitive furnace recipe. ++ */ ++ public void addSmelting(int i, int meta, ItemStack itemstack) ++ { ++ metaSmeltingList.put(Arrays.asList(i,meta), itemstack); ++ } ++ ++ /* FORGE: Not used anymore. ++ */ + public ItemStack getSmeltingResult(int i) + { + return (ItemStack)smeltingList.get(Integer.valueOf(i)); + } + ++ /* FORGE: Added to allow metadata-sensitive smelting. ++ */ ++ public ItemStack getSmeltingResult(ItemStack src) { ++ ItemStack tr; ++ ++ if(src==null) return null; ++ tr=(ItemStack)metaSmeltingList.get( ++ Arrays.asList(src.itemID,src.getItemDamage())); ++ if(tr!=null) return tr; ++ return (ItemStack)smeltingList.get(Integer.valueOf(src.itemID)); ++ } ++ + public Map getSmeltingList() + { + return smeltingList; +@@ -52,5 +74,6 @@ + + private static final FurnaceRecipes smeltingBase = new FurnaceRecipes(); + private Map smeltingList; ++ private Map metaSmeltingList; + + } diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/ItemBucket.java ../src_work/minecraft/net/minecraft/src/ItemBucket.java --- ../src_base/minecraft/net/minecraft/src/ItemBucket.java 2011-09-19 16:32:52.000000000 -0400 +++ ../src_work/minecraft/net/minecraft/src/ItemBucket.java 2011-09-19 16:32:54.000000000 -0400 @@ -2045,6 +2096,27 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/Tessellat + } + } } +diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/TileEntityFurnace.java ../src_work/minecraft/net/minecraft/src/TileEntityFurnace.java +--- ../src_base/minecraft/net/minecraft/src/TileEntityFurnace.java 2011-09-19 16:32:52.000000000 -0400 ++++ ../src_work/minecraft/net/minecraft/src/TileEntityFurnace.java 2011-09-20 20:51:30.000000000 -0400 +@@ -196,7 +196,7 @@ + { + return false; + } +- ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(furnaceItemStacks[0].getItem().shiftedIndex); ++ ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(furnaceItemStacks[0]); + if(itemstack == null) + { + return false; +@@ -222,7 +222,7 @@ + { + return; + } +- ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(furnaceItemStacks[0].getItem().shiftedIndex); ++ ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(furnaceItemStacks[0]); + if(furnaceItemStacks[2] == null) + { + furnaceItemStacks[2] = itemstack.copy(); diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/TileEntity.java ../src_work/minecraft/net/minecraft/src/TileEntity.java --- ../src_base/minecraft/net/minecraft/src/TileEntity.java 2011-09-19 16:32:52.000000000 -0400 +++ ../src_work/minecraft/net/minecraft/src/TileEntity.java 2011-09-19 16:32:54.000000000 -0400 @@ -3312,6 +3384,57 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Ex } if(f1 > 0.0F) { +diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/FurnaceRecipes.java ../src_work/minecraft_server/net/minecraft/src/FurnaceRecipes.java +--- ../src_base/minecraft_server/net/minecraft/src/FurnaceRecipes.java 2011-09-19 16:32:53.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/FurnaceRecipes.java 2011-09-20 20:52:55.000000000 -0400 +@@ -6,6 +6,7 @@ + + import java.util.HashMap; + import java.util.Map; ++import java.util.Arrays; + + // Referenced classes of package net.minecraft.src: + // Block, ItemStack, Item +@@ -40,11 +41,32 @@ + smeltingList.put(Integer.valueOf(i), itemstack); + } + ++ /* FORGE: Add a metadata-sensitive furnace recipe. ++ */ ++ public void addSmelting(int i, int meta, ItemStack itemstack) ++ { ++ metaSmeltingList.put(Arrays.asList(i,meta), itemstack); ++ } ++ ++ /* FORGE: Not used anymore. ++ */ + public ItemStack getSmeltingResult(int i) + { + return (ItemStack)smeltingList.get(Integer.valueOf(i)); + } + ++ /* FORGE: Added to allow metadata-sensitive smelting. ++ */ ++ public ItemStack getSmeltingResult(ItemStack src) { ++ ItemStack tr; ++ ++ if(src==null) return null; ++ tr=(ItemStack)metaSmeltingList.get( ++ Arrays.asList(src.itemID,src.getItemDamage())); ++ if(tr!=null) return tr; ++ return (ItemStack)smeltingList.get(Integer.valueOf(src.itemID)); ++ } ++ + public Map getSmeltingList() + { + return smeltingList; +@@ -52,5 +74,6 @@ + + private static final FurnaceRecipes smeltingBase = new FurnaceRecipes(); + private Map smeltingList; ++ private Map metaSmeltingList; + + } diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/ItemBucket.java ../src_work/minecraft_server/net/minecraft/src/ItemBucket.java --- ../src_base/minecraft_server/net/minecraft/src/ItemBucket.java 2011-09-19 16:32:53.000000000 -0400 +++ ../src_work/minecraft_server/net/minecraft/src/ItemBucket.java 2011-09-19 16:32:54.000000000 -0400 @@ -3523,6 +3646,27 @@ diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/Sl for(int i = 0; i < craftMatrix.getSizeInventory(); i++) { ItemStack itemstack1 = craftMatrix.getStackInSlot(i); +diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/TileEntityFurnace.java ../src_work/minecraft_server/net/minecraft/src/TileEntityFurnace.java +--- ../src_base/minecraft_server/net/minecraft/src/TileEntityFurnace.java 2011-09-19 16:32:53.000000000 -0400 ++++ ../src_work/minecraft_server/net/minecraft/src/TileEntityFurnace.java 2011-09-20 20:51:40.000000000 -0400 +@@ -176,7 +176,7 @@ + { + return false; + } +- ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(furnaceItemStacks[0].getItem().shiftedIndex); ++ ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(furnaceItemStacks[0]); + if(itemstack == null) + { + return false; +@@ -204,7 +204,7 @@ + { + return; + } +- ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(furnaceItemStacks[0].getItem().shiftedIndex); ++ ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(furnaceItemStacks[0]); + if(furnaceItemStacks[2] == null) + { + furnaceItemStacks[2] = itemstack.copy(); diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/TileEntity.java ../src_work/minecraft_server/net/minecraft/src/TileEntity.java --- ../src_base/minecraft_server/net/minecraft/src/TileEntity.java 2011-09-19 16:32:53.000000000 -0400 +++ ../src_work/minecraft_server/net/minecraft/src/TileEntity.java 2011-09-19 16:32:54.000000000 -0400