//--------------------------------------------------------
|
// [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<LoginModel>(); } }
|
|
#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<ServerDataCouple>();
|
var serverDataList = new List<ServerData>(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<ServerDataCouple>(null);
|
}
|
|
}
|
}
|
}
|
|
}
|
|
|
|
|