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) } // ----------------------------------------------------------------------- //