Made printer easier to automate (piping out of it will now only extract "outputs", i.e. empty ink cartridges and prints).

This commit is contained in:
Florian Nücke 2015-03-26 18:47:13 +01:00
parent 1bfd54091a
commit b6d20aa344

View File

@ -15,12 +15,13 @@ import li.cil.oc.server.{PacketSender => ServerPacketSender}
import li.cil.oc.util.ExtendedAABB._ import li.cil.oc.util.ExtendedAABB._
import li.cil.oc.util.ExtendedNBT._ import li.cil.oc.util.ExtendedNBT._
import li.cil.oc.util.ItemUtils import li.cil.oc.util.ItemUtils
import net.minecraft.inventory.ISidedInventory
import net.minecraft.item.ItemStack import net.minecraft.item.ItemStack
import net.minecraft.nbt.NBTTagCompound import net.minecraft.nbt.NBTTagCompound
import net.minecraft.util.AxisAlignedBB import net.minecraft.util.AxisAlignedBB
import net.minecraftforge.common.util.ForgeDirection import net.minecraftforge.common.util.ForgeDirection
class Printer extends traits.Environment with traits.Inventory with traits.Rotatable with SidedEnvironment with traits.StateAware { class Printer extends traits.Environment with traits.Inventory with traits.Rotatable with SidedEnvironment with traits.StateAware with ISidedInventory {
val node = api.Network.newNode(this, Visibility.Network). val node = api.Network.newNode(this, Visibility.Network).
withComponent("printer3d"). withComponent("printer3d").
withConnector(Settings.get.bufferConverter). withConnector(Settings.get.bufferConverter).
@ -314,4 +315,12 @@ class Printer extends traits.Environment with traits.Inventory with traits.Rotat
else if (slot == 1) else if (slot == 1)
api.Items.get(stack) == api.Items.get("inkCartridge") api.Items.get(stack) == api.Items.get("inkCartridge")
else false else false
// ----------------------------------------------------------------------- //
override def getAccessibleSlotsFromSide(side: Int): Array[Int] = Array(slotMaterial, slotInk, slotOutput)
override def canExtractItem(slot: Int, stack: ItemStack, side: Int): Boolean = !isItemValidForSlot(slot, stack)
override def canInsertItem(slot: Int, stack: ItemStack, side: Int): Boolean = slot != slotOutput
} }