internal static void HandleNetworkedVarUpdate(uint clientId, Stream stream, int channelId) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { uint netId = reader.ReadUInt32Packed(); ushort orderIndex = reader.ReadUInt16Packed(); if (SpawnManager.SpawnedObjects.ContainsKey(netId)) { NetworkedBehaviour instance = SpawnManager.SpawnedObjects[netId].GetBehaviourAtOrderIndex(orderIndex); if (instance == null) { if (LogHelper.CurrentLogLevel <= LogLevel.Normal) { LogHelper.LogWarning("NetworkedVar message recieved for a non existant behaviour"); } return; } NetworkedBehaviour.HandleNetworkedVarUpdate(instance.networkedVarFields, stream, clientId, instance); } else if (SpawnManager.PendingSpawnObjects.ContainsKey(netId)) { NetworkedBehaviour.HandleNetworkedVarUpdate(SpawnManager.PendingSpawnObjects[netId].GetDummyNetworkedVarListAtOrderIndex(orderIndex), stream, clientId, null); } else { if (LogHelper.CurrentLogLevel <= LogLevel.Normal) { LogHelper.LogWarning("NetworkedVar message recieved for a non existant object with id: " + netId); } return; } } }
internal static void HandleNetworkedVarUpdate(ulong clientId, Stream stream, Action <ulong> bufferCallback) { if (!NetworkingManager.Singleton.NetworkConfig.EnableNetworkedVar) { if (LogHelper.CurrentLogLevel <= LogLevel.Normal) { LogHelper.LogWarning("NetworkedVar update received but EnableNetworkedVar is false"); } return; } using (PooledBitReader reader = PooledBitReader.Get(stream)) { ulong networkId = reader.ReadUInt64Packed(); ushort orderIndex = reader.ReadUInt16Packed(); if (SpawnManager.SpawnedObjects.ContainsKey(networkId)) { NetworkedBehaviour instance = SpawnManager.SpawnedObjects[networkId].GetBehaviourAtOrderIndex(orderIndex); if (instance == null) { if (LogHelper.CurrentLogLevel <= LogLevel.Normal) { LogHelper.LogWarning("NetworkedVarUpdate message recieved for a non existant behaviour. NetworkId: " + networkId + ", behaviourIndex: " + orderIndex); } } else { NetworkedBehaviour.HandleNetworkedVarUpdate(instance.networkedVarFields, stream, clientId, instance); } } else if (NetworkingManager.Singleton.IsServer || !NetworkingManager.Singleton.NetworkConfig.EnableMessageBuffering) { if (LogHelper.CurrentLogLevel <= LogLevel.Normal) { LogHelper.LogWarning("NetworkedVarUpdate message recieved for a non existant object with id: " + networkId + ". This delta was lost."); } } else { if (LogHelper.CurrentLogLevel <= LogLevel.Normal) { LogHelper.LogWarning("NetworkedVarUpdate message recieved for a non existant object with id: " + networkId + ". This delta will be buffered and might be recovered."); } bufferCallback(networkId); } } }
internal static void HandleNetworkedVarUpdate(ulong clientId, Stream stream) { if (!NetworkingManager.Singleton.NetworkConfig.EnableNetworkedVar) { if (LogHelper.CurrentLogLevel <= LogLevel.Normal) { LogHelper.LogWarning("NetworkedVar update received but EnableNetworkedVar is false"); } return; } using (PooledBitReader reader = PooledBitReader.Get(stream)) { ulong networkId = reader.ReadUInt64Packed(); ushort orderIndex = reader.ReadUInt16Packed(); if (SpawnManager.SpawnedObjects.ContainsKey(networkId)) { NetworkedBehaviour instance = SpawnManager.SpawnedObjects[networkId].GetBehaviourAtOrderIndex(orderIndex); if (instance == null) { if (LogHelper.CurrentLogLevel <= LogLevel.Normal) { LogHelper.LogWarning("NetworkedVar message recieved for a non existant behaviour"); } return; } NetworkedBehaviour.HandleNetworkedVarUpdate(instance.networkedVarFields, stream, clientId, instance); } else { if (LogHelper.CurrentLogLevel <= LogLevel.Normal) { LogHelper.LogWarning("NetworkedVar message recieved for a non existant object with id: " + networkId); } return; } } }