mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-10 07:45:05 -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
|
case _ => None
|
||||||
}
|
}
|
||||||
|
|
||||||
val oldSide = nodeMapping(slot)(connectableIndex)
|
val oldSide = nodeMapping(slot)(connectableIndex + 1)
|
||||||
if (oldSide == newSide) return
|
if (oldSide == newSide) return
|
||||||
|
|
||||||
// Cut connection / remove sniffer node.
|
// Cut connection / remove sniffer node.
|
||||||
val mountable = getMountable(slot)
|
val mountable = getMountable(slot)
|
||||||
if (mountable != null && oldSide.isDefined) {
|
if (mountable != null && oldSide.isDefined) {
|
||||||
if (connectableIndex == 0) {
|
if (connectableIndex == -1) {
|
||||||
val node = mountable.node
|
val node = mountable.node
|
||||||
val plug = sidedNode(toGlobal(oldSide.get))
|
val plug = sidedNode(toGlobal(oldSide.get))
|
||||||
if (node != null && plug != null) {
|
if (node != null && plug != null) {
|
||||||
node.disconnect(plug)
|
node.disconnect(plug)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else if (connectableIndex >= 0) {
|
||||||
snifferNodes(slot)(connectableIndex).remove()
|
snifferNodes(slot)(connectableIndex).remove()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
nodeMapping(slot)(connectableIndex) = newSide
|
nodeMapping(slot)(connectableIndex + 1) = newSide
|
||||||
|
|
||||||
// Establish connection / add sniffer node.
|
// Establish connection / add sniffer node.
|
||||||
if (mountable != null && newSide.isDefined) {
|
if (mountable != null && newSide.isDefined) {
|
||||||
if (connectableIndex == 0) {
|
if (connectableIndex == -1) {
|
||||||
val node = mountable.node
|
val node = mountable.node
|
||||||
val plug = sidedNode(toGlobal(newSide.get))
|
val plug = sidedNode(toGlobal(newSide.get))
|
||||||
if (node != null && plug != null) {
|
if (node != null && plug != null) {
|
||||||
node.connect(plug)
|
node.connect(plug)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (connectableIndex < mountable.getConnectableCount) {
|
else if (connectableIndex >= 0 && connectableIndex < mountable.getConnectableCount) {
|
||||||
val connectable = mountable.getConnectableAt(connectableIndex)
|
val connectable = mountable.getConnectableAt(connectableIndex)
|
||||||
if (connectable != null && connectable.node != null) {
|
if (connectable != null && connectable.node != null) {
|
||||||
if (connectable.node.network == 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.
|
case _ => // Not connected to this side.
|
||||||
}
|
}
|
||||||
for (connectableIndex <- 0 until 3) {
|
for (connectableIndex <- 0 until 3) {
|
||||||
mapping(connectableIndex) match {
|
mapping(connectableIndex + 1) match {
|
||||||
case Some(side) if toGlobal(side) == plugSide =>
|
case Some(side) if toGlobal(side) == plugSide =>
|
||||||
val mountable = getMountable(slot)
|
val mountable = getMountable(slot)
|
||||||
if (mountable != null && connectableIndex < mountable.getConnectableCount) {
|
if (mountable != null && connectableIndex < mountable.getConnectableCount) {
|
||||||
|
@ -252,7 +252,7 @@ object PacketHandler extends CommonPacketHandler {
|
|||||||
entity match {
|
entity match {
|
||||||
case Some(t) => p.player match {
|
case Some(t) => p.player match {
|
||||||
case player: EntityPlayerMP if t.isUseableByPlayer(player) =>
|
case player: EntityPlayerMP if t.isUseableByPlayer(player) =>
|
||||||
t.connect(mountableIndex, nodeIndex, side)
|
t.connect(mountableIndex, nodeIndex - 1, side)
|
||||||
case _ =>
|
case _ =>
|
||||||
}
|
}
|
||||||
case _ => // Invalid packet.
|
case _ => // Invalid packet.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user