public void RemoveOnlinePlayerChangedCallback(OnlinePlayerChangedDelegate callback) { if (_changedCallbacks != null) { _changedCallbacks.Remove(callback); } }
public void RemovePendingAsyncGetOnlinePlayerCallback(OnlinePlayerChangedDelegate callback) { List <ulong> keysToRemove = new List <ulong>(); foreach (var pair in _pendingAsyncPlayerGets) { pair.Value.RemoveAll(x => x == callback); if (pair.Value.Count == 0) { var player = GetSteamPlayer(new CSteamID(pair.Key)); player.Dispose(); // unref for pending callback. player.Dispose(); // unref for GetSteamPlayer() keysToRemove.Add(pair.Key); } } if (keysToRemove.Count == _pendingAsyncPlayerGets.Count) { _pendingAsyncPlayerGets.Clear(); } else { for (int i = 0; i < keysToRemove.Count; ++i) { _pendingAsyncPlayerGets.Remove(keysToRemove[i]); } } }
public void AddFriendshipChangedCallback(OnlinePlayerChangedDelegate callback) { if (!_friendChangedCallbacks.Contains(callback)) { _friendChangedCallbacks.Add(callback); } }
public void AsyncGetOnlinePlayer(ulong playerID, OnlinePlayerChangedDelegate callback) { var player = CreateSteamPlayer(new CSteamID(playerID)); if (player.name == null) { List <OnlinePlayerChangedDelegate> changed; if (!_pendingAsyncPlayerGets.TryGetValue(playerID, out changed)) { player.AddRef(); changed = new List <OnlinePlayerChangedDelegate>(); _pendingAsyncPlayerGets.Add(playerID, changed); } if (!changed.Contains(callback)) { changed.Add(callback); } } else { callback(player, EOnlinePlayerChangedFlags.Name | EOnlinePlayerChangedFlags.Status | EOnlinePlayerChangedFlags.Avatar); if (DispatchAsyncPlayerGetCallbacks(player)) { player.Dispose(); } } player.Dispose(); }
public void AddOnlinePlayerChangedCallback(OnlinePlayerChangedDelegate callback) { if (_changedCallbacks == null) { _changedCallbacks = new List <OnlinePlayerChangedDelegate>(); } if (!_changedCallbacks.Contains(callback)) { _changedCallbacks.Add(callback); } }
public void AsyncGetOnlinePlayer(ulong uuid, OnlinePlayerChangedDelegate callback) { OnlineNullPlayer player; if (!_players.TryGetValue(uuid, out player)) { player = new OnlineNullPlayer(new OnlineNullPlayerID(uuid), false); _players.Add(uuid, player); } callback(player, EOnlinePlayerChangedFlags.Name | EOnlinePlayerChangedFlags.Presence); }
public void RemoveFriendshipChangedCallback(OnlinePlayerChangedDelegate callback) { _friendChangedCallbacks.Remove(callback); }
public void AsyncGetOnlinePlayer(OnlinePlayerID id, OnlinePlayerChangedDelegate callback) { AsyncGetOnlinePlayer(id.uuid, callback); }
public void AddFriendshipChangedCallback(OnlinePlayerChangedDelegate callback) { }
public void RemoveOnlinePlayerChangedCallback(OnlinePlayerChangedDelegate callback) { }
public void AddOnlinePlayerChangedCallback(OnlinePlayerChangedDelegate callback) { }
public void RemovePendingAsyncGetOnlinePlayerCallback(OnlinePlayerChangedDelegate callback) { }