using System;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
using UnityEngine.Events;
|
|
namespace vnxbqy.UI
|
{
|
public class GMCmdPanel : Window
|
{
|
|
[SerializeField]
|
private ScrollerController _cmdCtrl;
|
|
[SerializeField]
|
private Button _closeBtn;
|
|
GMCmdModel _cmdModel;
|
GMCmdModel cmdModel {
|
get {
|
return _cmdModel ?? (_cmdModel = ModelCenter.Instance.GetModel<GMCmdModel>());
|
}
|
}
|
|
|
protected override void BindController()
|
{
|
_cmdCtrl.OnRefreshCell += RefreshCmdCell;
|
}
|
|
|
protected override void AddListeners()
|
{
|
_closeBtn.onClick.AddListener(OnClickCloseBtn);
|
}
|
|
protected override void OnPreOpen()
|
{
|
CreateCmdCell();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
this.transform.SetAsLastSibling();
|
}
|
|
protected override void OnPreClose()
|
{
|
}
|
|
protected override void OnAfterClose()
|
{
|
|
}
|
|
private void CreateCmdCell()
|
{
|
_cmdCtrl.Refresh();
|
var allKeys = GmCmdConfig.GetKeys();
|
foreach (var key in allKeys)
|
{
|
_cmdCtrl.AddCell(ScrollerDataType.Header, int.Parse(key));
|
}
|
_cmdCtrl.Restart();
|
}
|
|
private void RefreshCmdCell(ScrollerDataType type, CellView cell)
|
{
|
Button cellBtn = cell.GetComponent<Button>();
|
Text cmdText = cell.transform.Find("Text").GetComponent<Text>();
|
GmCmdConfig gmCmdModel = GmCmdConfig.Get(cell.index);
|
if (gmCmdModel == null)
|
return;
|
|
cmdText.text = gmCmdModel.Cmd + "=" + gmCmdModel.ParamSet;
|
cellBtn.onClick.RemoveAllListeners();
|
cellBtn.onClick.AddListener(() => { OnClickCmdCell(gmCmdModel.ParamSet); });
|
}
|
|
private void OnClickCmdCell(string paramSet)
|
{
|
SplitLongGMCmd(paramSet);
|
}
|
|
public void SplitLongGMCmd(string value)
|
{
|
if (value == "RoleDead" && CrossServerUtility.IsCrossServer())
|
{
|
string[] longCmdArray = value.Split('|');
|
for (int i = 0; i < longCmdArray.Length; i++)
|
{
|
cmdModel.SendCrossServerGMQuest(longCmdArray[i].Trim());
|
}
|
}
|
else
|
{
|
string[] longCmdArray = value.Split('|');
|
for (int i = 0; i < longCmdArray.Length; i++)
|
{
|
cmdModel.OnSendGMQuest(longCmdArray[i].Trim());
|
}
|
}
|
|
}
|
|
public void OnClickCloseBtn()
|
{
|
Close();
|
}
|
|
}
|
}
|