//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Saturday, September 02, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class ServerListWin : Window { [SerializeField] CyclicScroll m_ServerGroupScroll; [SerializeField] CyclicScroll m_ServerScroll; [SerializeField] Button m_Close; LoginModel model { get { return ModelCenter.Instance.GetModel(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { m_Close.AddListener(CloseClick); } protected override void OnPreOpen() { } protected override void OnAfterOpen() { ServerListCenter.Instance.serverGroupSelectEvent += RefreshServerList; } protected override void OnPreClose() { ServerListCenter.Instance.serverGroupSelectEvent -= RefreshServerList; } protected override void OnAfterClose() { } protected override void OnActived() { base.OnActived(); m_ServerGroupScroll.Init(ServerListCenter.Instance.GetAllServerGroup()); RefreshServerList(); } #endregion private void RefreshServerList() { ServerGroup serverGroup = null; if (ServerListCenter.Instance.TryGetServerGroup(ServerListCenter.Instance.currentServerGroup, out serverGroup)) { if (serverGroup.group_list != null) { var groupDatas = new List(); var serverDataList = new List(serverGroup.group_list); for (int i = serverDataList.Count - 1; i >= 0; i--) { if (VersionConfig.Get().isBanShu) { if (serverDataList[i].region_flag != 8000) { serverDataList.RemoveAt(i); } } else { if (serverDataList[i].region_flag == 8000) { serverDataList.RemoveAt(i); } } } serverDataList.Sort(ServerData.Compare); var max = serverDataList.Count; for (int i = 0; i < max; i++, i++) { if (i + 1 < max) { groupDatas.Add(new ServerDataCouple(serverDataList[i], serverDataList[i + 1])); } else { groupDatas.Add(new ServerDataCouple(serverDataList[i])); } } m_ServerScroll.Init(groupDatas); } else { m_ServerScroll.Init(null); } } } } }