From 0ad1e777d52d0419d3a0b0249fe7ef312096083c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Magiera?= Date: Wed, 16 Dec 2015 18:44:47 +0100 Subject: [PATCH] Fix network card visibility in rack --- .../cil/oc/server/component/NetworkCard.scala | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/main/scala/li/cil/oc/server/component/NetworkCard.scala b/src/main/scala/li/cil/oc/server/component/NetworkCard.scala index 5a623bdd2..2f5d0b392 100644 --- a/src/main/scala/li/cil/oc/server/component/NetworkCard.scala +++ b/src/main/scala/li/cil/oc/server/component/NetworkCard.scala @@ -18,7 +18,12 @@ import scala.collection.convert.WrapAsScala._ import scala.collection.mutable class NetworkCard(val host: EnvironmentHost) extends prefab.ManagedEnvironment with RackBusConnectable { - override val node = Network.newNode(this, Visibility.Network). + protected val visibility = host match { + case _: Rack => Visibility.Neighbors + case _ => Visibility.Network + } + + override val node = Network.newNode(this, visibility). withComponent("modem", Visibility.Neighbors). create() @@ -99,14 +104,14 @@ class NetworkCard(val host: EnvironmentHost) extends prefab.ManagedEnvironment w result(oldMessage.orNull, oldFuzzy) } - protected def doSend(packet: Packet) = host match { - case _: Rack => node.sendToNeighbors("network.message", packet) - case _ => node.sendToReachable("network.message", packet) + protected def doSend(packet: Packet) = visibility match { + case Visibility.Neighbors => node.sendToNeighbors("network.message", packet) + case Visibility.Network => node.sendToReachable("network.message", packet) } - protected def doBroadcast(packet: Packet) = host match { - case _: Rack => node.sendToNeighbors("network.message", packet) - case _ => node.sendToReachable("network.message", packet) + protected def doBroadcast(packet: Packet) = visibility match { + case Visibility.Neighbors => node.sendToNeighbors("network.message", packet) + case Visibility.Network => node.sendToReachable("network.message", packet) } // ----------------------------------------------------------------------- //