From 3eac68ad5375dc0b122735e2b56e562061f7e6ff Mon Sep 17 00:00:00 2001 From: Dynious Date: Tue, 11 Feb 2014 22:12:55 +0100 Subject: [PATCH] Added sucking in items ontop of calcinator. --- .../ee3/tileentity/TileCalcinator.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/main/java/com/pahimar/ee3/tileentity/TileCalcinator.java b/src/main/java/com/pahimar/ee3/tileentity/TileCalcinator.java index e8080aa7..e79027b7 100644 --- a/src/main/java/com/pahimar/ee3/tileentity/TileCalcinator.java +++ b/src/main/java/com/pahimar/ee3/tileentity/TileCalcinator.java @@ -6,6 +6,7 @@ import com.pahimar.ee3.network.packet.PacketTileCalcinator; import com.pahimar.ee3.recipe.CalcinationManager; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; @@ -13,6 +14,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.network.packet.Packet; import net.minecraft.tileentity.TileEntityFurnace; +import net.minecraft.tileentity.TileEntityHopper; /** * Equivalent-Exchange-3 @@ -41,6 +43,8 @@ public class TileCalcinator extends TileEE implements IInventory public byte leftStackSize, leftStackMeta, rightStackSize, rightStackMeta; + public int itemSuckCooldown = 0; + public TileCalcinator() { inventory = new ItemStack[INVENTORY_SIZE]; @@ -294,6 +298,20 @@ public class TileCalcinator extends TileEE implements IInventory { sendUpdate = true; } + + //Item sucking + if (this.itemSuckCooldown > 0) + { + itemSuckCooldown--; + } + else + { + if (suckItemsIntoCalcinator(this)) + { + onInventoryChanged(); + } + itemSuckCooldown = 2; + } } 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 public Packet getDescriptionPacket() {