From c556f4044eb8e6b0b7c38a92342e0cd8ce095a96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Fri, 25 Oct 2013 00:47:15 +0200 Subject: [PATCH] simplified redstone driver (just using the message source as the redstone input/output provider) --- assets/opencomputers/lua/drivers/redstone.lua | 9 +++------ li/cil/oc/server/component/RedstoneCard.scala | 12 ++++++------ 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/assets/opencomputers/lua/drivers/redstone.lua b/assets/opencomputers/lua/drivers/redstone.lua index fe680bef9..e33a934e3 100644 --- a/assets/opencomputers/lua/drivers/redstone.lua +++ b/assets/opencomputers/lua/drivers/redstone.lua @@ -1,12 +1,9 @@ driver.redstone = {} --- Save this before there's a chance it gets changed by a user. -local owner = os.address() - function driver.redstone.analogInput(card, side) checkArg(1, card, "string") checkArg(2, side, "number") - return send(card, "redstone.input", owner, side) + return send(card, "redstone.input", side) end function driver.redstone.analogOutput(card, side, value) @@ -14,9 +11,9 @@ function driver.redstone.analogOutput(card, side, value) checkArg(2, side, "number") checkArg(3, value, "number", "nil") if value then - return send(card, "redstone.output=", owner, side, value) + return send(card, "redstone.output=", side, value) else - return send(card, "redstone.output", owner, side) + return send(card, "redstone.output", side) end end diff --git a/li/cil/oc/server/component/RedstoneCard.scala b/li/cil/oc/server/component/RedstoneCard.scala index ea3c702f2..0669e0486 100644 --- a/li/cil/oc/server/component/RedstoneCard.scala +++ b/li/cil/oc/server/component/RedstoneCard.scala @@ -12,14 +12,14 @@ class RedstoneCard extends Component { override def receive(message: Message) = super.receive(message).orElse { message.data match { - case Array(target: Array[Byte], side: Double) if message.name == "redstone.input" => - network.get.sendToAddress(this, new String(target, "UTF-8"), + case Array(side: Double) if message.name == "redstone.input" => + network.get.sendToAddress(this, message.source.address.get, "redstone.input", ForgeDirection.getOrientation(side.toInt)) - case Array(target: Array[Byte], side: Double) if message.name == "redstone.output" => - network.get.sendToAddress(this, new String(target, "UTF-8"), + case Array(side: Double) if message.name == "redstone.output" => + network.get.sendToAddress(this, message.source.address.get, "redstone.output", ForgeDirection.getOrientation(side.toInt)) - case Array(target: Array[Byte], side: Double, value: Double) if message.name == "redstone.output=" => - network.get.sendToAddress(this, new String(target, "UTF-8"), + case Array(side: Double, value: Double) if message.name == "redstone.output=" => + network.get.sendToAddress(this, message.source.address.get, "redstone.output=", ForgeDirection.getOrientation(side.toInt), value.toInt) case _ => None // Ignore. }