/// <summary> /// Add a server to the list of servers /// </summary> /// <param name="lobby">The <see cref="Steamworks.Data.Lobby"/> of the lobby/server to add to the list</param> private void AddServer(Steamworks.Data.Lobby lobby) { for (int i = 0; i < serverList.Count; ++i) { var server = serverList[i]; if (server.lobby.Id == lobby.Id) { // Already have that server listed nothing else to do return; } } var serverListItemData = new ServerListItemData { ListItem = GameObject.Instantiate <ServerListEntry>(serverListEntryTemplate, servers.content), lobby = lobby }; // Make the list item visible serverListItemData.ListItem.gameObject.SetActive(true); // Make sure we periodically re-request the lobby/server data so the server information in the list is // up-to-date serverListItemData.NextUpdate = Time.time + 5.0f + UnityEngine.Random.Range(0.0f, 1.0f); // Add the server to the list. serverList.Add(serverListItemData); // Make sure the the newly added server is not selected on the UI SetListItemSelected(serverListItemData, false); // Make sure every item in the UI is positioned well RepositionItems(); return; }
/// <summary> /// Set the border around the selected server entry /// </summary> /// <param name="data"></param> /// <param name="selected"></param> private void SetListItemSelected(ServerListItemData data, bool selected) { data.ListItem.GetComponent <Image>().enabled = selected; }
/// <summary> /// Remove a server from the server list based on the list data /// </summary> /// <param name="item">The <see cref="ServerListItemData"/> to be removed</param> private void RemoveServer(ServerListItemData item) { Destroy(item.ListItem.gameObject); serverList.Remove(item); RepositionItems(); }