mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-09 15:25:56 -04:00
propose fix for #3635
This commit is contained in:
parent
9013fc2028
commit
77649fd246
@ -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) {
|
||||
|
@ -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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user