From a9e3cd907c76cc4be80a36502c626fb893ee348a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Mon, 7 Jul 2014 01:34:41 +0200 Subject: [PATCH] Made it so that robots can also send and receive wired network messages. --- .../scala/li/cil/oc/common/tileentity/RobotProxy.scala | 8 ++++++++ .../scala/li/cil/oc/server/component/robot/Robot.scala | 10 +++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/scala/li/cil/oc/common/tileentity/RobotProxy.scala b/src/main/scala/li/cil/oc/common/tileentity/RobotProxy.scala index 4a2cfa7e8..81507ebb2 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/RobotProxy.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/RobotProxy.scala @@ -65,6 +65,14 @@ class RobotProxy(val robot: Robot) extends traits.Computer with traits.PowerInfo def isRunning(context: Context, args: Arguments): Array[AnyRef] = result(computer.isRunning) + override def onMessage(message: Message) { + super.onMessage(message) + if (message.name == "network.message" && message.source != robot.node) message.data match { + case Array(packet: Packet) => robot.node.sendToReachable(message.name, packet) + case _ => + } + } + // ----------------------------------------------------------------------- // override def updateEntity() { diff --git a/src/main/scala/li/cil/oc/server/component/robot/Robot.scala b/src/main/scala/li/cil/oc/server/component/robot/Robot.scala index 09684bf69..4c4dbadb0 100644 --- a/src/main/scala/li/cil/oc/server/component/robot/Robot.scala +++ b/src/main/scala/li/cil/oc/server/component/robot/Robot.scala @@ -22,7 +22,7 @@ import net.minecraftforge.fluids.FluidRegistry import scala.collection.convert.WrapAsScala._ class Robot(val robot: tileentity.Robot) extends ManagedComponent { - val node = api.Network.newNode(this, Visibility.Neighbors). + val node = api.Network.newNode(this, Visibility.Network). withComponent("robot"). withConnector(Settings.get.bufferRobot). create() @@ -494,6 +494,14 @@ class Robot(val robot: tileentity.Robot) extends ManagedComponent { } } + override def onMessage(message: Message) { + super.onMessage(message) + if (message.name == "network.message" && message.source != robot.proxy.node) message.data match { + case Array(packet: Packet) => robot.proxy.node.sendToReachable(message.name, packet) + case _ => + } + } + // ----------------------------------------------------------------------- // override def load(nbt: NBTTagCompound) {