diff --git a/src/main/scala/li/cil/oc/common/tileentity/Rack.scala b/src/main/scala/li/cil/oc/common/tileentity/Rack.scala index e9a16327d..e85fb88ae 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Rack.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Rack.scala @@ -59,36 +59,36 @@ class Rack extends traits.PowerAcceptor with traits.Hub with traits.PowerBalance case _ => None } - val oldSide = nodeMapping(slot)(connectableIndex) + val oldSide = nodeMapping(slot)(connectableIndex + 1) if (oldSide == newSide) return // Cut connection / remove sniffer node. val mountable = getMountable(slot) if (mountable != null && oldSide.isDefined) { - if (connectableIndex == 0) { + if (connectableIndex == -1) { val node = mountable.node val plug = sidedNode(toGlobal(oldSide.get)) if (node != null && plug != null) { node.disconnect(plug) } } - else { + else if (connectableIndex >= 0) { snifferNodes(slot)(connectableIndex).remove() } } - nodeMapping(slot)(connectableIndex) = newSide + nodeMapping(slot)(connectableIndex + 1) = newSide // Establish connection / add sniffer node. if (mountable != null && newSide.isDefined) { - if (connectableIndex == 0) { + if (connectableIndex == -1) { val node = mountable.node val plug = sidedNode(toGlobal(newSide.get)) if (node != null && plug != null) { node.connect(plug) } } - else if (connectableIndex < mountable.getConnectableCount) { + else if (connectableIndex >= 0 && connectableIndex < mountable.getConnectableCount) { val connectable = mountable.getConnectableAt(connectableIndex) if (connectable != null && connectable.node != null) { if (connectable.node.network == null) { @@ -114,7 +114,7 @@ class Rack extends traits.PowerAcceptor with traits.Hub with traits.PowerBalance case _ => // Not connected to this side. } for (connectableIndex <- 0 until 3) { - mapping(connectableIndex) match { + mapping(connectableIndex + 1) match { case Some(side) if toGlobal(side) == plugSide => val mountable = getMountable(slot) if (mountable != null && connectableIndex < mountable.getConnectableCount) { diff --git a/src/main/scala/li/cil/oc/server/PacketHandler.scala b/src/main/scala/li/cil/oc/server/PacketHandler.scala index a54ab678e..6d7deb06c 100644 --- a/src/main/scala/li/cil/oc/server/PacketHandler.scala +++ b/src/main/scala/li/cil/oc/server/PacketHandler.scala @@ -252,7 +252,7 @@ object PacketHandler extends CommonPacketHandler { entity match { case Some(t) => p.player match { case player: EntityPlayerMP if t.isUseableByPlayer(player) => - t.connect(mountableIndex, nodeIndex, side) + t.connect(mountableIndex, nodeIndex - 1, side) case _ => } case _ => // Invalid packet.