ForgePatch/forge/patches/minecraft_server/net/minecraft/src/TileEntityFurnace.java.patch
LexManos 141805d5bb Fixed a bug in forge_client project that had a hard link to E:/MCP/jars/bin/paul.jar now points to MCP/jars/bin/minecraft.jar {has the same paulsound libraries}
Major refactoring of the patches, now each modified file gets its own patch file.
Rewrote all the scripts to use new multi-patch system.
Added linux install.sh using new system.
Added some required libraries from GNUWin32 for the windows side of the new setup.bat/update_patches.bat http://gnuwin32.sourceforge.net/
2011-10-09 04:21:29 +00:00

97 lines
3.1 KiB
Diff

--- ../src_base/minecraft_server/net/minecraft/src/TileEntityFurnace.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft_server/net/minecraft/src/TileEntityFurnace.java 0000-00-00 00:00:00.000000000 -0000
@@ -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)
{