Metadata-sensitive smelting patch.

This commit is contained in:
Eloraam committed 2011-09-21 00:55:09 +00:00
1 parent c9b6cdef1f
commit 9fa40cb432
1 file changed
+144
+144
View File
@@ -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