diff --git a/assets/opencomputers/lib/native.32.dylib b/assets/opencomputers/lib/native.32.dylib new file mode 100644 index 000000000..e22025991 Binary files /dev/null and b/assets/opencomputers/lib/native.32.dylib differ diff --git a/assets/opencomputers/lib/native.32.so b/assets/opencomputers/lib/native.32.so index 5ab2a64dc..32a8c79be 100644 Binary files a/assets/opencomputers/lib/native.32.so and b/assets/opencomputers/lib/native.32.so differ diff --git a/assets/opencomputers/lib/native.64.dylib b/assets/opencomputers/lib/native.64.dylib new file mode 100644 index 000000000..c26e25db3 Binary files /dev/null and b/assets/opencomputers/lib/native.64.dylib differ diff --git a/assets/opencomputers/lib/native.64.so b/assets/opencomputers/lib/native.64.so index 4f38961b5..478d27fa5 100644 Binary files a/assets/opencomputers/lib/native.64.so and b/assets/opencomputers/lib/native.64.so differ diff --git a/li/cil/oc/common/tileentity/Environment.scala b/li/cil/oc/common/tileentity/Environment.scala index 3c54a8fd7..06cdc5779 100644 --- a/li/cil/oc/common/tileentity/Environment.scala +++ b/li/cil/oc/common/tileentity/Environment.scala @@ -22,7 +22,7 @@ abstract class Environment extends net.minecraft.tileentity.TileEntity with Tile def block = getBlockType - private var addedToNetwork = false + protected var addedToNetwork = false // ----------------------------------------------------------------------- // diff --git a/li/cil/oc/common/tileentity/Robot.scala b/li/cil/oc/common/tileentity/Robot.scala index e1b4dc7d9..7bd9d199e 100644 --- a/li/cil/oc/common/tileentity/Robot.scala +++ b/li/cil/oc/common/tileentity/Robot.scala @@ -237,7 +237,8 @@ class Robot(isRemote: Boolean) extends Computer(isRemote) with ISidedInventory w // ----------------------------------------------------------------------- // override def updateEntity() { - if (node != null && node.network == null) { + if (!addedToNetwork) { + addedToNetwork = true api.Network.joinNewNetwork(node) } if (animationTicksLeft > 0) { @@ -270,6 +271,7 @@ class Robot(isRemote: Boolean) extends Computer(isRemote) with ISidedInventory w case Some(item) => player_.getAttributeMap.applyAttributeModifiers(item.getAttributeModifiers) case _ => } + updateXpInfo() } } diff --git a/li/cil/oc/server/network/Network.scala b/li/cil/oc/server/network/Network.scala index 769e4537a..3b9dc8956 100644 --- a/li/cil/oc/server/network/Network.scala +++ b/li/cil/oc/server/network/Network.scala @@ -100,7 +100,7 @@ private class Network private(private val data: mutable.Map[String, Network.Vert data.remove(node.address) match { case Some(entry) => node match { - case connector: Connector if connector.localBufferSize > 0 => removeConnector(connector) + case connector: Connector => removeConnector(connector) case _ => } node.network = null @@ -287,10 +287,12 @@ private class Network private(private val data: mutable.Map[String, Network.Vert } def removeConnector(connector: Connector) { - assert(connectors.contains(connector)) - connectors -= connector - globalBuffer -= connector.localBuffer - globalBufferSize -= connector.localBufferSize + if (connector.localBufferSize > 0) { + assert(connectors.contains(connector)) + connectors -= connector + globalBuffer -= connector.localBuffer + globalBufferSize -= connector.localBufferSize + } } def changeBuffer(delta: Double): Double = {