ForgePatch/forge/patches/minecraft_server/net/minecraft/src/TileEntityFurnace.java.patch

98 lines
3.1 KiB
Diff
Raw Normal View History

2011-10-10 19:16:11 +00:00
--- ../src_base/minecraft_server/net/minecraft/src/TileEntityFurnace.java 0000-00-00 00:00:00.000000000 -00
+++ ../src_work/minecraft_server/net/minecraft/src/TileEntityFurnace.java 0000-00-00 00:00:00.000000000 -00
@@ -4,6 +4,7 @@
package net.minecraft.src;
+import net.minecraft.src.forge.ISidedInventory;
// Referenced classes of package net.minecraft.src:
// TileEntity, IInventory, ItemStack, NBTTagCompound,
@@ -12,7 +13,7 @@
// EntityPlayer
public class TileEntityFurnace extends TileEntity
- implements IInventory
+ implements IInventory, ISidedInventory
{
public TileEntityFurnace()
@@ -28,6 +29,16 @@
return furnaceItemStacks.length;
}
+ public int getStartInventorySide(int side) {
+ if(side==0) return 1;
+ if(side==1) return 0;
+ return 2;
+ }
+
+ public int getSizeInventorySide(int side) {
+ return 1;
+ }
+
public ItemStack getStackInSlot(int i)
{
return furnaceItemStacks[i];
@@ -176,7 +187,7 @@
{
return false;
}
- ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(furnaceItemStacks[0].getItem().shiftedIndex);
+ ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(furnaceItemStacks[0]);
if(itemstack == null)
{
return false;
@@ -189,13 +200,9 @@
{
return false;
}
- if(furnaceItemStacks[2].stackSize < getInventoryStackLimit() && furnaceItemStacks[2].stackSize < furnaceItemStacks[2].getMaxStackSize())
- {
- return true;
- } else
- {
- return furnaceItemStacks[2].stackSize < itemstack.getMaxStackSize();
- }
+ int st=furnaceItemStacks[2].stackSize+itemstack.stackSize;
+ return (st<=getInventoryStackLimit() &&
+ st<=itemstack.getMaxStackSize());
}
public void smeltItem()
@@ -204,23 +211,29 @@
{
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();
} else
- if(furnaceItemStacks[2].itemID == itemstack.itemID)
+ if(furnaceItemStacks[2].isItemEqual(itemstack))
+ {
+ furnaceItemStacks[2].stackSize+=itemstack.stackSize;
+ }
+ if(furnaceItemStacks[0].getItem().hasContainerItem())
+ {
+ furnaceItemStacks[0] = new ItemStack(furnaceItemStacks[0].getItem().getContainerItem());
+ } else
{
- furnaceItemStacks[2].stackSize++;
+ furnaceItemStacks[0].stackSize--;
}
- furnaceItemStacks[0].stackSize--;
if(furnaceItemStacks[0].stackSize <= 0)
{
furnaceItemStacks[0] = null;
}
}
- private int getItemBurnTime(ItemStack itemstack)
+ public static int getItemBurnTime(ItemStack itemstack)
{
if(itemstack == null)
{