AxibugEmuOnline/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInputSP/UGUI/AxiInputUGUICenter.cs

79 lines
2.6 KiB
C#

using System.Collections.Generic;
namespace AxiInputSP.UGUI
{
public static class AxiInputUGUICenter
{
static int handleSeed = 0;
static Dictionary<int, AxiInputUGUIHandle> dictHandle2AxiUgui = new Dictionary<int, AxiInputUGUIHandle>();
static Dictionary<AxiInputUGuiBtnType, List<AxiInputUGUIHandle>> dictBtnType2BtnList = new Dictionary<AxiInputUGuiBtnType, List<AxiInputUGUIHandle>>();
public static int GetNextSeed()
{
return ++handleSeed;
}
public static void RegHandle(AxiInputUGUIHandle uiHandle)
{
dictHandle2AxiUgui[uiHandle.Handle] = uiHandle;
List<AxiInputUGUIHandle> list;
if (dictBtnType2BtnList.TryGetValue(uiHandle.UguiBtnType, out list))
list = dictBtnType2BtnList[uiHandle.UguiBtnType] = new List<AxiInputUGUIHandle>();
if (!list.Contains(uiHandle))
list.Add(uiHandle);
}
public static void UnregHandle(AxiInputUGUIHandle uiHandle)
{
if (!dictHandle2AxiUgui.ContainsKey(uiHandle.Handle))
return;
dictHandle2AxiUgui.Remove(uiHandle.Handle);
List<AxiInputUGUIHandle> list;
if (dictBtnType2BtnList.TryGetValue(uiHandle.UguiBtnType, out list))
{
if (list.Contains(uiHandle))
list.Remove(uiHandle);
}
}
public static bool GetKeyUp(AxiInputUGuiBtnType btntype)
{
List<AxiInputUGUIHandle> list;
if (!dictBtnType2BtnList.TryGetValue(btntype, out list))
return false;
for (int i = 0; i < list.Count; i++)
{
if (list[i].GetKeyUp())
return true;
}
return false;
}
public static bool GetKeyDown(AxiInputUGuiBtnType btntype)
{
List<AxiInputUGUIHandle> list;
if (!dictBtnType2BtnList.TryGetValue(btntype, out list))
return false;
for (int i = 0; i < list.Count; i++)
{
if (list[i].GetKeyDown())
return true;
}
return false;
}
public static bool GetKey(AxiInputUGuiBtnType btntype)
{
List<AxiInputUGUIHandle> list;
if (!dictBtnType2BtnList.TryGetValue(btntype, out list))
return false;
for (int i = 0; i < list.Count; i++)
{
if (list[i].GetKey())
return true;
}
return false;
}
}
}