You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			94 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C#
		
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C#
		
	
| using System.Collections.Generic;
 | |
| using Game.Common;
 | |
| 
 | |
| namespace Game
 | |
| {
 | |
|     public class PageGmPanel : UIPageBase<ViewGMPanel>
 | |
|     {
 | |
|         private Dictionary<string, List<GmInfo>> _mGmDict;
 | |
|         public PageGmPanel()
 | |
|         {
 | |
|             _mGmDict = new Dictionary<string, List<GmInfo>>();
 | |
|         }
 | |
|         protected override void OnCreate()
 | |
|         {
 | |
|             CreateUI(true);
 | |
| 
 | |
|             View.m_ConsoleInput.onClick.Clear();
 | |
|             View.m_ConsoleInput.onClick.Add(() =>
 | |
|             {
 | |
|                 View.m_ConsoleInput.RequestFocus();
 | |
|             });
 | |
|         }
 | |
|         protected override void OnDestroy() { }
 | |
|         protected override void OnOpen()
 | |
|         {
 | |
|             View.m_LayerList.RemoveChildrenToPool();
 | |
|             _mGmDict.Clear();
 | |
| 
 | |
|             var gmList = GmManager.Instance.MGmList;
 | |
|             foreach (var gmInfo in gmList)
 | |
|             {
 | |
|                 var layerName = gmInfo.MLayer.ToString();
 | |
|                 if (!_mGmDict.ContainsKey(layerName))
 | |
|                 {
 | |
|                     _mGmDict[layerName] = new List<GmInfo>();
 | |
|                     var item = View.m_LayerList.AddItemFromPool().asButton;
 | |
|                     item.title = layerName;
 | |
|                     item.onClick.Clear();
 | |
|                     item.onClick.Add(() =>
 | |
|                     {
 | |
|                         RefreshSubPanel(item.title);
 | |
|                     });
 | |
|                 }
 | |
|                 _mGmDict[layerName].Add(gmInfo);
 | |
|             }
 | |
|             RefreshSubPanel("_first");
 | |
|         }
 | |
|         protected override void OnClose()
 | |
|         {
 | |
|         }
 | |
|         public override void Update()
 | |
|         {
 | |
| 
 | |
|         }
 | |
|         public void RefreshSubPanel(string layerName)
 | |
|         {
 | |
|             View.m_GmList.RemoveChildrenToPool();
 | |
|             if (layerName == "_first")
 | |
|             {
 | |
|                 if (_mGmDict.Count == 0)
 | |
|                 {
 | |
|                     return;
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     var e = _mGmDict.Keys.GetEnumerator();
 | |
|                     e.MoveNext();
 | |
|                     layerName = e.Current;
 | |
|                 }
 | |
|             }
 | |
|             var gmList = _mGmDict[layerName];
 | |
|             foreach (var gmInfo in gmList)
 | |
|             {
 | |
|                 var item = View.m_GmList.AddItemFromPool().asButton;
 | |
|                 item.title = gmInfo.MName;
 | |
|                 item.onClick.Clear();
 | |
|                 item.onClick.Add(() =>
 | |
|                 {
 | |
|                     gmInfo.MCallback(StringHelper.ParseToParam(View.m_ConsoleInput.text));
 | |
|                 });
 | |
|             }
 | |
|         }
 | |
|         protected override void OnInput(PPlayerInput context)
 | |
|         {
 | |
|             if (context.Action == EKeyActionType.Press)
 | |
|             {
 | |
|                 if (context.Key == EFunctionKey.Menu)
 | |
|                 {
 | |
|                     UIManager.Instance.Close();
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| } |