diff options
Diffstat (limited to 'Client/Assembly-CSharp/ServerSelectUi.cs')
-rw-r--r-- | Client/Assembly-CSharp/ServerSelectUi.cs | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/Client/Assembly-CSharp/ServerSelectUi.cs b/Client/Assembly-CSharp/ServerSelectUi.cs new file mode 100644 index 0000000..671ff7c --- /dev/null +++ b/Client/Assembly-CSharp/ServerSelectUi.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +public class ServerSelectUi : MonoBehaviour +{ + public ServerSelector ServerButtonPrefab; + + public Vector3 ScrollStartArea; + + public Scroller Slider; + + public ServerSelector CustomServer; + + private List<ServerSelector> myButtons = new List<ServerSelector>(); + + public void Start() + { + ServerInfo[] availableServers = DestroyableSingleton<ServerManager>.Instance.availableServers; + Vector3 scrollStartArea = this.ScrollStartArea; + for (int i = 0; i < availableServers.Length; i++) + { + if (!(availableServers[i].Name == "Custom")) + { + ServerSelector serverSelector = UnityEngine.Object.Instantiate<ServerSelector>(this.ServerButtonPrefab, this.Slider.Inner); + serverSelector.name = availableServers[i].Name; + this.myButtons.Add(serverSelector); + serverSelector.transform.localPosition = scrollStartArea; + serverSelector.Parent = this; + serverSelector.MyServer = availableServers[i]; + if (availableServers[i].Default) + { + serverSelector.Select(); + } + scrollStartArea.y -= 0.7f; + } + } + this.CustomServer.Parent = this; + this.myButtons.Add(this.CustomServer); + if (DestroyableSingleton<ServerManager>.Instance.LastServer.Name == "Custom") + { + this.CustomServer.Select(); + } + this.Slider.YBounds.max = this.ScrollStartArea.y; + this.Slider.YBounds.min = scrollStartArea.y; + } + + internal void SelectServer(ServerSelector selected) + { + for (int i = 0; i < this.myButtons.Count; i++) + { + ServerSelector serverSelector = this.myButtons[i]; + if (!serverSelector.MyServer.Default) + { + serverSelector.Unselect(); + } + } + } +} |