From 83e43f32fc43932a44438bc156ccb70af0c0eac7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Sun, 23 Feb 2014 17:27:57 +0100 Subject: [PATCH] also displaying the more specific 'no cpu' error message for servers --- src/main/java/li/cil/oc/server/component/Server.scala | 9 +++++++++ .../li/cil/oc/server/component/machine/Machine.scala | 1 + 2 files changed, 10 insertions(+) diff --git a/src/main/java/li/cil/oc/server/component/Server.scala b/src/main/java/li/cil/oc/server/component/Server.scala index 5e74fa0b0..24062b99c 100644 --- a/src/main/java/li/cil/oc/server/component/Server.scala +++ b/src/main/java/li/cil/oc/server/component/Server.scala @@ -2,6 +2,7 @@ package li.cil.oc.server.component import li.cil.oc.Items import li.cil.oc.api.driver +import li.cil.oc.api.driver.Slot import li.cil.oc.api.network.{Message, Node} import li.cil.oc.common.inventory.ComponentInventory import li.cil.oc.common.inventory.ServerInventory @@ -61,6 +62,14 @@ class Server(val rack: tileentity.Rack, val number: Int) extends Machine.Owner { case _ => 0 })) + def hasCPU = inventory.items.exists { + case Some(stack) => Registry.itemDriverFor(stack) match { + case Some(driver) => driver.slot(stack) == Slot.Processor + case _ => false + } + case _ => false + } + override def world = rack.world override def markAsChanged() = rack.markAsChanged() diff --git a/src/main/java/li/cil/oc/server/component/machine/Machine.scala b/src/main/java/li/cil/oc/server/component/machine/Machine.scala index 14b50583c..d6e2bc05b 100644 --- a/src/main/java/li/cil/oc/server/component/machine/Machine.scala +++ b/src/main/java/li/cil/oc/server/component/machine/Machine.scala @@ -104,6 +104,7 @@ class Machine(val owner: Machine.Owner) extends ManagedComponent with Context wi else if (componentCount > owner.maxComponents) { crash(Settings.namespace + (owner match { case t: tileentity.Case if !t.hasCPU => "gui.Error.NoCPU" + case s: server.component.Server if !s.hasCPU => "gui.Error.NoCPU" case _ => "gui.Error.ComponentOverflow" })) false