From 44b69a4045cd2603ba9627dfe769673c6335532b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Thu, 10 Apr 2014 00:28:20 +0200 Subject: [PATCH] Allow placing item tier 1 memory (tier 1 and 1.5 RAM) into the upgrade slot of robots. --- src/main/scala/li/cil/oc/common/tileentity/Robot.scala | 10 ++++++++-- .../scala/li/cil/oc/server/driver/item/Memory.scala | 4 ++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/scala/li/cil/oc/common/tileentity/Robot.scala b/src/main/scala/li/cil/oc/common/tileentity/Robot.scala index a344b8654..04a696d61 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Robot.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Robot.scala @@ -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. } diff --git a/src/main/scala/li/cil/oc/server/driver/item/Memory.scala b/src/main/scala/li/cil/oc/server/driver/item/Memory.scala index bc123ef5b..bd960318c 100644 --- a/src/main/scala/li/cil/oc/server/driver/item/Memory.scala +++ b/src/main/scala/li/cil/oc/server/driver/item/Memory.scala @@ -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