using System;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
using UnityEngine.Events;
|
|
public class GMCmdPanel : UIBase
|
{
|
|
[SerializeField]
|
private ScrollerController _cmdCtrl;
|
|
[SerializeField]
|
private Button _closeBtn;
|
|
GMCmdManager _cmdModel;
|
GMCmdManager cmdModel{ get { return GMCmdManager.Instance; } }
|
|
protected override void OnPreOpen()
|
{
|
base.OnPreOpen();
|
_cmdCtrl.OnRefreshCell += RefreshCmdCell;
|
|
_closeBtn.onClick.AddListener(OnClickCloseBtn);
|
|
CreateCmdCell();
|
}
|
|
protected override void OnOpen()
|
{
|
base.OnOpen();
|
this.transform.SetAsLastSibling();
|
}
|
|
|
private void CreateCmdCell()
|
{
|
_cmdCtrl.Refresh();
|
var allKeys = GmCmdConfig.dic.Keys;
|
foreach (var key in allKeys)
|
{
|
_cmdCtrl.AddCell(ScrollerDataType.Header, 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)
|
{
|
|
string[] longCmdArray = value.Split('|');
|
for (int i = 0; i < longCmdArray.Length; i++)
|
{
|
cmdModel.OnSendGMQuest(longCmdArray[i].Trim());
|
}
|
|
|
}
|
|
public void OnClickCloseBtn()
|
{
|
CloseWindow();
|
}
|
|
}
|