Merge pull request #635 from Dynious/CalcinatorSuck

Added sucking in items ontop of calcinator.
This commit is contained in:
pahimar 2014-02-12 18:40:32 -05:00
commit 933d5eb1b3

View file

@ -6,6 +6,7 @@ import com.pahimar.ee3.network.packet.PacketTileCalcinator;
import com.pahimar.ee3.recipe.CalcinationManager; import com.pahimar.ee3.recipe.CalcinationManager;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -13,6 +14,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagList;
import net.minecraft.network.packet.Packet; import net.minecraft.network.packet.Packet;
import net.minecraft.tileentity.TileEntityFurnace; import net.minecraft.tileentity.TileEntityFurnace;
import net.minecraft.tileentity.TileEntityHopper;
/** /**
* Equivalent-Exchange-3 * Equivalent-Exchange-3
@ -41,6 +43,8 @@ public class TileCalcinator extends TileEE implements IInventory
public byte leftStackSize, leftStackMeta, rightStackSize, rightStackMeta; public byte leftStackSize, leftStackMeta, rightStackSize, rightStackMeta;
public int itemSuckCooldown = 0;
public TileCalcinator() public TileCalcinator()
{ {
inventory = new ItemStack[INVENTORY_SIZE]; inventory = new ItemStack[INVENTORY_SIZE];
@ -294,6 +298,20 @@ public class TileCalcinator extends TileEE implements IInventory
{ {
sendUpdate = true; sendUpdate = true;
} }
//Item sucking
if (this.itemSuckCooldown > 0)
{
itemSuckCooldown--;
}
else
{
if (suckItemsIntoCalcinator(this))
{
onInventoryChanged();
}
itemSuckCooldown = 2;
}
} }
if (sendUpdate) if (sendUpdate)
@ -422,6 +440,16 @@ public class TileCalcinator extends TileEE implements IInventory
} }
} }
/**
* Sucks one item into the given hopper from an inventory or EntityItem above it.
*/
public static boolean suckItemsIntoCalcinator(TileCalcinator calcinator)
{
EntityItem entityitem = TileEntityHopper.getEntityAbove(calcinator.getWorldObj(), calcinator.xCoord, calcinator.yCoord + 1.0D, calcinator.zCoord);
return entityitem != null && TileEntityHopper.insertStackFromEntity(calcinator, entityitem);
}
@Override @Override
public Packet getDescriptionPacket() public Packet getDescriptionPacket()
{ {