/// <summary> /// Add a steam Lobby to the list of visible lobbies /// </summary> /// <param name="lobby">The Steamworks Lobby to add to the list</param> private void AddServer(Steamworks.Data.Lobby lobby) { var hostName = lobby.Id.Value.ToString(); for (int i = 0; i < serverList.Count; ++i) { var server = serverList[i]; if (server.Hostname == hostName) { // Already have that server listed nothing else to do return; } } var serverListItemData = new FacepunchServerListItemData { ListItem = GameObject.Instantiate <FacepunchServerListEntry>(serverListEntryTemplate, servers.content), Hostname = hostName, }; serverListItemData.ListItem.gameObject.SetActive(true); serverListItemData.lobby = lobby; UpdateItem(serverListItemData); serverListItemData.NextUpdate = Time.time + 5.0f + UnityEngine.Random.Range(0.0f, 1.0f); serverList.Add(serverListItemData); SetListItemSelected(serverListItemData, false); RepositionItems(); }
/// <summary> /// Set the border around the selected server entry /// </summary> /// <param name="data"></param> /// <param name="selected"></param> private void SetListItemSelected(FacepunchServerListItemData data, bool selected) { data.ListItem.GetComponent <Image>().enabled = selected; }
/// <summary> /// Update a specific server's details on the server list. /// </summary> /// <param name="option">The server display information to update</param> private void UpdateItem(FacepunchServerListItemData option) { // TODO: Extract lobby info for display on the menu option.ListItem.hostName.text = option.Hostname; }
/// <summary> /// Remove a lobby from the list /// </summary> /// <param name="item">Lobby listItemData to remove</param> private void RemoveServer(FacepunchServerListItemData item) { Destroy(item.ListItem.gameObject); serverList.Remove(item); RepositionItems(); }