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
|
2011-10-09 04:21:29 +00: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)
|
|
|
|
{
|