Пример #1
0
        void OnLobbyDataUpdated(LobbyDataUpdate_t callback)
        {
            if (callback.Success == 1) //1 if success, 0 if failure
            {
                if (ManualLobbyDataCallbacks.ContainsKey(callback.SteamIDLobby))
                {
                    ManualLobbyDataCallbacks[callback.SteamIDLobby]?.Invoke(Lobby.FromSteam(client, callback.SteamIDLobby));
                }

                //find the lobby that has been updated
                Lobby lobby = Lobbies.Find(x => x != null && x.LobbyID == callback.SteamIDLobby);

                //if this lobby isn't yet in the list of lobbies, we know that we should add it
                if (lobby == null)
                {
                    if (requests.Contains(callback.SteamIDLobby))
                    {
                        lobby = Lobby.FromSteam(client, callback.SteamIDLobby);
                        Lobbies.Add(lobby);
                        checkFinished();
                    }
                }

                //otherwise lobby data in general was updated and you should listen to see what changed
                if (requests.Contains(callback.SteamIDLobby))
                {
                    OnLobbiesUpdated?.Invoke();
                }
            }
        }
Пример #2
0
    private void onCreateCallback(DataLobby obj)
    {
        bool canAdded = false;

        if (!IsFiltered)
        {
            if (Lobbies != null && Lobbies.Find(item => item.roomId == obj.roomId) == null)
            {
                canAdded = true;
            }
        }
        else
        {
            List <DataLobby> listLobbyFilter = getListLobbyFilter();
            if (listLobbyFilter.Contains(obj))
            {
                canAdded = true;
            }
        }
        if (canAdded)
        {
            view.AddLobby(obj);
            Lobbies.Add(obj);
        }
    }
Пример #3
0
    private void onUpdateCallback(DataLobby obj)
    {
        view.UpdateLobby(obj);
        DataLobby lob = Lobbies.Find(i => i.roomId == obj.roomId);

        lob = obj;
    }
Пример #4
0
 private void onDeleteCallback(DataLobby obj)
 {
     if (Lobbies != null)
     {
         DataLobby lob = Lobbies.Find(i => i.roomId == obj.roomId);
         if (lob != null)
         {
             view.RemoveLobby(obj);
             Lobbies.Remove(lob);
         }
     }
 }
Пример #5
0
        void OnLobbyDataUpdated(LobbyDataUpdate_t callback)
        {
            if (callback.Success == 1) //1 if success, 0 if failure
            {
                //find the lobby that has been updated
                Lobby lobby = Lobbies.Find(x => x.LobbyID == callback.SteamIDLobby);

                //if this lobby isn't yet in the list of lobbies, we know that we should add it
                if (lobby == null)
                {
                    Lobbies.Add(lobby);
                    checkFinished();
                }

                //otherwise lobby data in general was updated and you should listen to see what changed
                if (OnLobbiesUpdated != null)
                {
                    OnLobbiesUpdated();
                }
            }
        }
Пример #6
0
 public Lobby GetLobby(ISocketMessageChannel channel)
 {
     return(Lobbies.Find(channel.Id));
 }