Allow placing item tier 1 memory (tier 1 and 1.5 RAM) into the upgrade slot of robots.

This commit is contained in:
Florian Nücke 2014-04-10 00:28:20 +02:00
parent c01081e6fd
commit 44b69a4045
2 changed files with 10 additions and 4 deletions

View File

@ -543,7 +543,13 @@ class Robot(val isRemote: Boolean) extends traits.Computer with traits.TextBuffe
// ----------------------------------------------------------------------- //
override def installedMemory = Settings.get.ramSizes(1) * 1024
override def installedMemory = Settings.get.ramSizes(1) * 1024 + (items(3) match {
case Some(stack) => Registry.itemDriverFor(stack) match {
case Some(driver: api.driver.Memory) => driver.amount(stack)
case _ => 0
}
case _ => 0
})
override def tier = 0
@ -586,7 +592,7 @@ class Robot(val isRemote: Boolean) extends traits.Computer with traits.TextBuffe
case (0, _) => true // Allow anything in the tool slot.
case (1, Some(driver)) => driver.slot(stack) == Slot.Card && driver.tier(stack) < 2
case (2, Some(driver)) => driver.slot(stack) == Slot.Disk
case (3, Some(driver)) => driver.slot(stack) == Slot.Upgrade
case (3, Some(driver)) => driver.slot(stack) == Slot.Upgrade || (driver.slot(stack) == Slot.Memory && driver.tier(stack) == 0)
case (i, _) if actualSlot(0) until getSizeInventory contains i => true // Normal inventory.
case _ => false // Invalid slot.
}

View File

@ -5,7 +5,7 @@ import li.cil.oc.api.driver
import li.cil.oc.api.driver.Slot
import li.cil.oc.common.item
import net.minecraft.item.ItemStack
import net.minecraft.tileentity.{TileEntity => MCTileEntity}
import net.minecraft.tileentity.TileEntity
object Memory extends Item with driver.Memory {
override def amount(stack: ItemStack) = Items.multi.subItem(stack) match {
@ -15,7 +15,7 @@ object Memory extends Item with driver.Memory {
override def worksWith(stack: ItemStack) = isOneOf(stack, Items.ram1, Items.ram2, Items.ram3, Items.ram4, Items.ram5, Items.ram6)
override def createEnvironment(stack: ItemStack, container: MCTileEntity) = null
override def createEnvironment(stack: ItemStack, container: TileEntity) = null
override def slot(stack: ItemStack) = Slot.Memory