mirror of
https://github.com/Alex-Rachel/TEngine.git
synced 2025-08-14 16:51:28 +00:00
游戏事件
This commit is contained in:
@@ -3,6 +3,9 @@ using System.Collections.Generic;
|
|||||||
|
|
||||||
namespace TEngine
|
namespace TEngine
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 游戏事件数据类。
|
||||||
|
/// </summary>
|
||||||
class EventDelegateData
|
class EventDelegateData
|
||||||
{
|
{
|
||||||
private int m_eventType = 0;
|
private int m_eventType = 0;
|
||||||
@@ -17,6 +20,11 @@ namespace TEngine
|
|||||||
m_eventType = evnetType;
|
m_eventType = evnetType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 添加注册委托。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="handler"></param>
|
||||||
|
/// <returns></returns>
|
||||||
public bool AddHandler(Delegate handler)
|
public bool AddHandler(Delegate handler)
|
||||||
{
|
{
|
||||||
if (m_listExist.Contains(handler))
|
if (m_listExist.Contains(handler))
|
||||||
@@ -38,22 +46,29 @@ namespace TEngine
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RmvHandler(Delegate hander)
|
/// <summary>
|
||||||
|
/// 移除反注册委托。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="handler"></param>
|
||||||
|
public void RmvHandler(Delegate handler)
|
||||||
{
|
{
|
||||||
if (m_isExcute)
|
if (m_isExcute)
|
||||||
{
|
{
|
||||||
m_dirty = true;
|
m_dirty = true;
|
||||||
m_deleteList.Add(hander);
|
m_deleteList.Add(handler);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!m_listExist.Remove(hander))
|
if (!m_listExist.Remove(handler))
|
||||||
{
|
{
|
||||||
Log.Fatal("Delete handle failed, not exist, EventId: {0}", StringId.HashToString(m_eventType));
|
Log.Fatal("Delete handle failed, not exist, EventId: {0}", StringId.HashToString(m_eventType));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 检测脏数据修正。
|
||||||
|
/// </summary>
|
||||||
private void CheckModify()
|
private void CheckModify()
|
||||||
{
|
{
|
||||||
m_isExcute = false;
|
m_isExcute = false;
|
||||||
@@ -75,14 +90,16 @@ namespace TEngine
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 回调调用。
|
||||||
|
/// </summary>
|
||||||
public void Callback()
|
public void Callback()
|
||||||
{
|
{
|
||||||
m_isExcute = true;
|
m_isExcute = true;
|
||||||
for (var i = 0; i < m_listExist.Count; i++)
|
for (var i = 0; i < m_listExist.Count; i++)
|
||||||
{
|
{
|
||||||
var d = m_listExist[i];
|
var d = m_listExist[i];
|
||||||
Action action = d as Action;
|
if (d is Action action)
|
||||||
if (action != null)
|
|
||||||
{
|
{
|
||||||
action();
|
action();
|
||||||
}
|
}
|
||||||
@@ -91,14 +108,18 @@ namespace TEngine
|
|||||||
CheckModify();
|
CheckModify();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Callback<T>(T arg1)
|
/// <summary>
|
||||||
|
/// 回调调用。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="arg1"></param>
|
||||||
|
/// <typeparam name="TArg1"></typeparam>
|
||||||
|
public void Callback<TArg1>(TArg1 arg1)
|
||||||
{
|
{
|
||||||
m_isExcute = true;
|
m_isExcute = true;
|
||||||
for (var i = 0; i < m_listExist.Count; i++)
|
for (var i = 0; i < m_listExist.Count; i++)
|
||||||
{
|
{
|
||||||
var d = m_listExist[i];
|
var d = m_listExist[i];
|
||||||
var action = d as Action<T>;
|
if (d is Action<TArg1> action)
|
||||||
if (action != null)
|
|
||||||
{
|
{
|
||||||
action(arg1);
|
action(arg1);
|
||||||
}
|
}
|
||||||
@@ -107,14 +128,20 @@ namespace TEngine
|
|||||||
CheckModify();
|
CheckModify();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Callback<T, U>(T arg1, U arg2)
|
/// <summary>
|
||||||
|
/// 回调调用。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="arg1"></param>
|
||||||
|
/// <param name="arg2"></param>
|
||||||
|
/// <typeparam name="TArg1"></typeparam>
|
||||||
|
/// <typeparam name="TArg2"></typeparam>
|
||||||
|
public void Callback<TArg1, TArg2>(TArg1 arg1, TArg2 arg2)
|
||||||
{
|
{
|
||||||
m_isExcute = true;
|
m_isExcute = true;
|
||||||
for (var i = 0; i < m_listExist.Count; i++)
|
for (var i = 0; i < m_listExist.Count; i++)
|
||||||
{
|
{
|
||||||
var d = m_listExist[i];
|
var d = m_listExist[i];
|
||||||
var action = d as Action<T, U>;
|
if (d is Action<TArg1, TArg2> action)
|
||||||
if (action != null)
|
|
||||||
{
|
{
|
||||||
action(arg1, arg2);
|
action(arg1, arg2);
|
||||||
}
|
}
|
||||||
@@ -123,14 +150,22 @@ namespace TEngine
|
|||||||
CheckModify();
|
CheckModify();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Callback<T, U, V>(T arg1, U arg2, V arg3)
|
/// <summary>
|
||||||
|
/// 回调调用。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="arg1"></param>
|
||||||
|
/// <param name="arg2"></param>
|
||||||
|
/// <param name="arg3"></param>
|
||||||
|
/// <typeparam name="TArg1"></typeparam>
|
||||||
|
/// <typeparam name="TArg2"></typeparam>
|
||||||
|
/// <typeparam name="TArg3"></typeparam>
|
||||||
|
public void Callback<TArg1, TArg2, TArg3>(TArg1 arg1, TArg2 arg2, TArg3 arg3)
|
||||||
{
|
{
|
||||||
m_isExcute = true;
|
m_isExcute = true;
|
||||||
for (var i = 0; i < m_listExist.Count; i++)
|
for (var i = 0; i < m_listExist.Count; i++)
|
||||||
{
|
{
|
||||||
var d = m_listExist[i];
|
var d = m_listExist[i];
|
||||||
var action = d as Action<T, U, V>;
|
if (d is Action<TArg1, TArg2, TArg3> action)
|
||||||
if (action != null)
|
|
||||||
{
|
{
|
||||||
action(arg1, arg2, arg3);
|
action(arg1, arg2, arg3);
|
||||||
}
|
}
|
||||||
@@ -139,14 +174,24 @@ namespace TEngine
|
|||||||
CheckModify();
|
CheckModify();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Callback<T, U, V, W>(T arg1, U arg2, V arg3, W arg4)
|
/// <summary>
|
||||||
|
/// 回调调用。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="arg1"></param>
|
||||||
|
/// <param name="arg2"></param>
|
||||||
|
/// <param name="arg3"></param>
|
||||||
|
/// <param name="arg4"></param>
|
||||||
|
/// <typeparam name="TArg1"></typeparam>
|
||||||
|
/// <typeparam name="TArg2"></typeparam>
|
||||||
|
/// <typeparam name="TArg3"></typeparam>
|
||||||
|
/// <typeparam name="TArg4"></typeparam>
|
||||||
|
public void Callback<TArg1, TArg2, TArg3, TArg4>(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
|
||||||
{
|
{
|
||||||
m_isExcute = true;
|
m_isExcute = true;
|
||||||
for (var i = 0; i < m_listExist.Count; i++)
|
for (var i = 0; i < m_listExist.Count; i++)
|
||||||
{
|
{
|
||||||
var d = m_listExist[i];
|
var d = m_listExist[i];
|
||||||
var action = d as Action<T, U, V, W>;
|
if (d is Action<TArg1, TArg2, TArg3, TArg4> action)
|
||||||
if (action != null)
|
|
||||||
{
|
{
|
||||||
action(arg1, arg2, arg3, arg4);
|
action(arg1, arg2, arg3, arg4);
|
||||||
}
|
}
|
||||||
@@ -155,14 +200,26 @@ namespace TEngine
|
|||||||
CheckModify();
|
CheckModify();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Callback<T, U, V, W, X>(T arg1, U arg2, V arg3, W arg4, X arg5)
|
/// <summary>
|
||||||
|
/// 回调调用。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="arg1"></param>
|
||||||
|
/// <param name="arg2"></param>
|
||||||
|
/// <param name="arg3"></param>
|
||||||
|
/// <param name="arg4"></param>
|
||||||
|
/// <param name="arg5"></param>
|
||||||
|
/// <typeparam name="TArg1"></typeparam>
|
||||||
|
/// <typeparam name="TArg2"></typeparam>
|
||||||
|
/// <typeparam name="TArg3"></typeparam>
|
||||||
|
/// <typeparam name="TArg4"></typeparam>
|
||||||
|
/// <typeparam name="TArg5"></typeparam>
|
||||||
|
public void Callback<TArg1, TArg2, TArg3, TArg4, TArg5>(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5)
|
||||||
{
|
{
|
||||||
m_isExcute = true;
|
m_isExcute = true;
|
||||||
for (var i = 0; i < m_listExist.Count; i++)
|
for (var i = 0; i < m_listExist.Count; i++)
|
||||||
{
|
{
|
||||||
var d = m_listExist[i];
|
var d = m_listExist[i];
|
||||||
var action = d as Action<T, U, V, W, X>;
|
if (d is Action<TArg1, TArg2, TArg3, TArg4, TArg5> action)
|
||||||
if (action != null)
|
|
||||||
{
|
{
|
||||||
action(arg1, arg2, arg3, arg4, arg5);
|
action(arg1, arg2, arg3, arg4, arg5);
|
||||||
}
|
}
|
||||||
@@ -173,18 +230,22 @@ namespace TEngine
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 封装消息的底层分发和注册
|
/// 封装消息的底层分发和注册。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
class EventDispatcher
|
class EventDispatcher
|
||||||
{
|
{
|
||||||
static Dictionary<int, EventDelegateData> m_eventTable = new Dictionary<int, EventDelegateData>();
|
static Dictionary<int, EventDelegateData> m_eventTable = new Dictionary<int, EventDelegateData>();
|
||||||
|
|
||||||
#region 事件管理接口
|
#region 事件管理接口
|
||||||
|
/// <summary>
|
||||||
|
/// 增加事件监听。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="eventType"></param>
|
||||||
|
/// <param name="handler"></param>
|
||||||
|
/// <returns></returns>
|
||||||
public bool AddEventListener(int eventType, Delegate handler)
|
public bool AddEventListener(int eventType, Delegate handler)
|
||||||
{
|
{
|
||||||
EventDelegateData data;
|
if (!m_eventTable.TryGetValue(eventType, out var data))
|
||||||
if (!m_eventTable.TryGetValue(eventType, out data))
|
|
||||||
{
|
{
|
||||||
data = new EventDelegateData(eventType);
|
data = new EventDelegateData(eventType);
|
||||||
m_eventTable.Add(eventType, data);
|
m_eventTable.Add(eventType, data);
|
||||||
@@ -193,68 +254,118 @@ namespace TEngine
|
|||||||
return data.AddHandler(handler);
|
return data.AddHandler(handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 移除事件监听。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="eventType"></param>
|
||||||
|
/// <param name="handler"></param>
|
||||||
public void RemoveEventListener(int eventType, Delegate handler)
|
public void RemoveEventListener(int eventType, Delegate handler)
|
||||||
{
|
{
|
||||||
EventDelegateData data;
|
if (m_eventTable.TryGetValue(eventType, out var data))
|
||||||
if (m_eventTable.TryGetValue(eventType, out data))
|
|
||||||
{
|
{
|
||||||
data.RmvHandler(handler);
|
data.RmvHandler(handler);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 事件分发接口
|
#region 事件分发接口
|
||||||
|
/// <summary>
|
||||||
|
/// 发送事件。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="eventType">事件类型。</param>
|
||||||
public void Send(int eventType)
|
public void Send(int eventType)
|
||||||
{
|
{
|
||||||
EventDelegateData d;
|
if (m_eventTable.TryGetValue(eventType, out var d))
|
||||||
if (m_eventTable.TryGetValue(eventType, out d))
|
|
||||||
{
|
{
|
||||||
d.Callback();
|
d.Callback();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Send<T>(int eventType, T arg1)
|
/// <summary>
|
||||||
|
/// 发送事件。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="eventType"></param>
|
||||||
|
/// <param name="arg1"></param>
|
||||||
|
/// <typeparam name="TArg1"></typeparam>
|
||||||
|
public void Send<TArg1>(int eventType, TArg1 arg1)
|
||||||
{
|
{
|
||||||
EventDelegateData d;
|
if (m_eventTable.TryGetValue(eventType, out var d))
|
||||||
if (m_eventTable.TryGetValue(eventType, out d))
|
|
||||||
{
|
{
|
||||||
d.Callback(arg1);
|
d.Callback(arg1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Send<T, U>(int eventType, T arg1, U arg2)
|
/// <summary>
|
||||||
|
/// 发送事件。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="eventType"></param>
|
||||||
|
/// <param name="arg1"></param>
|
||||||
|
/// <param name="arg2"></param>
|
||||||
|
/// <typeparam name="TArg1"></typeparam>
|
||||||
|
/// <typeparam name="TArg2"></typeparam>
|
||||||
|
public void Send<TArg1, TArg2>(int eventType, TArg1 arg1, TArg2 arg2)
|
||||||
{
|
{
|
||||||
EventDelegateData d;
|
if (m_eventTable.TryGetValue(eventType, out var d))
|
||||||
if (m_eventTable.TryGetValue(eventType, out d))
|
|
||||||
{
|
{
|
||||||
d.Callback(arg1, arg2);
|
d.Callback(arg1, arg2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Send<T, U, V>(int eventType, T arg1, U arg2, V arg3)
|
/// <summary>
|
||||||
|
/// 发送事件。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="eventType"></param>
|
||||||
|
/// <param name="arg1"></param>
|
||||||
|
/// <param name="arg2"></param>
|
||||||
|
/// <param name="arg3"></param>
|
||||||
|
/// <typeparam name="TArg1"></typeparam>
|
||||||
|
/// <typeparam name="TArg2"></typeparam>
|
||||||
|
/// <typeparam name="TArg3"></typeparam>
|
||||||
|
public void Send<TArg1, TArg2, TArg3>(int eventType, TArg1 arg1, TArg2 arg2, TArg3 arg3)
|
||||||
{
|
{
|
||||||
EventDelegateData d;
|
if (m_eventTable.TryGetValue(eventType, out var d))
|
||||||
if (m_eventTable.TryGetValue(eventType, out d))
|
|
||||||
{
|
{
|
||||||
d.Callback(arg1, arg2, arg3);
|
d.Callback(arg1, arg2, arg3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Send<T, U, V, W>(int eventType, T arg1, U arg2, V arg3, W arg4)
|
/// <summary>
|
||||||
|
/// 发送事件。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="eventType"></param>
|
||||||
|
/// <param name="arg1"></param>
|
||||||
|
/// <param name="arg2"></param>
|
||||||
|
/// <param name="arg3"></param>
|
||||||
|
/// <param name="arg4"></param>
|
||||||
|
/// <typeparam name="TArg1"></typeparam>
|
||||||
|
/// <typeparam name="TArg2"></typeparam>
|
||||||
|
/// <typeparam name="TArg3"></typeparam>
|
||||||
|
/// <typeparam name="TArg4"></typeparam>
|
||||||
|
public void Send<TArg1, TArg2, TArg3, TArg4>(int eventType, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
|
||||||
{
|
{
|
||||||
EventDelegateData d;
|
if (m_eventTable.TryGetValue(eventType, out var d))
|
||||||
if (m_eventTable.TryGetValue(eventType, out d))
|
|
||||||
{
|
{
|
||||||
d.Callback(arg1, arg2, arg3, arg4);
|
d.Callback(arg1, arg2, arg3, arg4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Send<T, U, V, W, X>(int eventType, T arg1, U arg2, V arg3, W arg4, X arg5)
|
/// <summary>
|
||||||
|
/// 发送事件。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="eventType"></param>
|
||||||
|
/// <param name="arg1"></param>
|
||||||
|
/// <param name="arg2"></param>
|
||||||
|
/// <param name="arg3"></param>
|
||||||
|
/// <param name="arg4"></param>
|
||||||
|
/// <param name="arg5"></param>
|
||||||
|
/// <typeparam name="TArg1"></typeparam>
|
||||||
|
/// <typeparam name="TArg2"></typeparam>
|
||||||
|
/// <typeparam name="TArg3"></typeparam>
|
||||||
|
/// <typeparam name="TArg4"></typeparam>
|
||||||
|
/// <typeparam name="TArg5"></typeparam>
|
||||||
|
public void Send<TArg1, TArg2, TArg3, TArg4, TArg5>(int eventType, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5)
|
||||||
{
|
{
|
||||||
EventDelegateData d;
|
if (m_eventTable.TryGetValue(eventType, out var d))
|
||||||
if (m_eventTable.TryGetValue(eventType, out d))
|
|
||||||
{
|
{
|
||||||
d.Callback(arg1, arg2, arg3, arg4, arg5);
|
d.Callback(arg1, arg2, arg3, arg4, arg5);
|
||||||
}
|
}
|
||||||
|
@@ -5,12 +5,12 @@ namespace TEngine
|
|||||||
public enum EEventGroup
|
public enum EEventGroup
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// UI相关的交互
|
/// UI相关的交互。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
GroupUI,
|
GroupUI,
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 逻辑层内部相关的交互
|
/// 逻辑层内部相关的交互。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
GroupLogic,
|
GroupLogic,
|
||||||
}
|
}
|
||||||
@@ -18,10 +18,10 @@ namespace TEngine
|
|||||||
[System.AttributeUsage(System.AttributeTargets.Interface)]
|
[System.AttributeUsage(System.AttributeTargets.Interface)]
|
||||||
public class EventInterface : Attribute
|
public class EventInterface : Attribute
|
||||||
{
|
{
|
||||||
public EEventGroup mGroup;
|
private EEventGroup _mGroup;
|
||||||
public EventInterface(EEventGroup group)
|
public EventInterface(EEventGroup group)
|
||||||
{
|
{
|
||||||
mGroup = group;
|
_mGroup = group;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -29,7 +29,7 @@ namespace TEngine
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 注册wrap的函数
|
/// 注册wrap的函数。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <typeparam name="T"></typeparam>
|
/// <typeparam name="T"></typeparam>
|
||||||
/// <param name="callerWrap"></param>
|
/// <param name="callerWrap"></param>
|
||||||
@@ -42,9 +42,9 @@ namespace TEngine
|
|||||||
m_entry.Add(typeName, entry);
|
m_entry.Add(typeName, entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
public EventDispatcher GetDispatcher()
|
/// <summary>
|
||||||
{
|
/// 分发注册器。
|
||||||
return m_dispatcher;
|
/// </summary>
|
||||||
}
|
public EventDispatcher Dispatcher => m_dispatcher;
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -2,9 +2,12 @@
|
|||||||
|
|
||||||
namespace TEngine
|
namespace TEngine
|
||||||
{
|
{
|
||||||
public class GameEvent
|
/// <summary>
|
||||||
|
/// 游戏事件类。
|
||||||
|
/// </summary>
|
||||||
|
public static class GameEvent
|
||||||
{
|
{
|
||||||
private static EventMgr m_mgr = new EventMgr();
|
private static readonly EventMgr EventMgr = new EventMgr();
|
||||||
|
|
||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
@@ -15,212 +18,212 @@ namespace TEngine
|
|||||||
|
|
||||||
public static bool AddEventListener(int eventType, Action handler)
|
public static bool AddEventListener(int eventType, Action handler)
|
||||||
{
|
{
|
||||||
return m_mgr.GetDispatcher().AddEventListener(eventType, handler);
|
return EventMgr.Dispatcher.AddEventListener(eventType, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool AddEventListener<T>(int eventType, Action<T> handler)
|
public static bool AddEventListener<TArg1>(int eventType, Action<TArg1> handler)
|
||||||
{
|
{
|
||||||
return m_mgr.GetDispatcher().AddEventListener(eventType, handler);
|
return EventMgr.Dispatcher.AddEventListener(eventType, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool AddEventListener<T, U>(int eventType, Action<T, U> handler)
|
public static bool AddEventListener<TArg1, TArg2>(int eventType, Action<TArg1, TArg2> handler)
|
||||||
{
|
{
|
||||||
return m_mgr.GetDispatcher().AddEventListener(eventType, handler);
|
return EventMgr.Dispatcher.AddEventListener(eventType, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool AddEventListener<T, U, V>(int eventType, Action<T, U, V> handler)
|
public static bool AddEventListener<TArg1, TArg2, TArg3>(int eventType, Action<TArg1, TArg2, TArg3> handler)
|
||||||
{
|
{
|
||||||
return m_mgr.GetDispatcher().AddEventListener(eventType, handler);
|
return EventMgr.Dispatcher.AddEventListener(eventType, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool AddEventListener<T, U, V, W>(int eventType, Action<T, U, V, W> handler)
|
public static bool AddEventListener<TArg1, TArg2, TArg3, TArg4>(int eventType, Action<TArg1, TArg2, TArg3, TArg4> handler)
|
||||||
{
|
{
|
||||||
return m_mgr.GetDispatcher().AddEventListener(eventType, handler);
|
return EventMgr.Dispatcher.AddEventListener(eventType, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool AddEventListener<T, U, V, W, X>(int eventType, Action<T, U, V, W, X> handler)
|
public static bool AddEventListener<TArg1, TArg2, TArg3, TArg4, TArg5>(int eventType, Action<TArg1, TArg2, TArg3, TArg4, TArg5> handler)
|
||||||
{
|
{
|
||||||
return m_mgr.GetDispatcher().AddEventListener(eventType, handler);
|
return EventMgr.Dispatcher.AddEventListener(eventType, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RemoveEventListener(int eventType, Action handler)
|
public static void RemoveEventListener(int eventType, Action handler)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().RemoveEventListener(eventType, handler);
|
EventMgr.Dispatcher.RemoveEventListener(eventType, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RemoveEventListener<T>(int eventType, Action<T> handler)
|
public static void RemoveEventListener<TArg1>(int eventType, Action<TArg1> handler)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().RemoveEventListener(eventType, handler);
|
EventMgr.Dispatcher.RemoveEventListener(eventType, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RemoveEventListener<T, U>(int eventType, Action<T, U> handler)
|
public static void RemoveEventListener<TArg1, TArg2>(int eventType, Action<TArg1, TArg2> handler)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().RemoveEventListener(eventType, handler);
|
EventMgr.Dispatcher.RemoveEventListener(eventType, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RemoveEventListener<T, U, V>(int eventType, Action<T, U, V> handler)
|
public static void RemoveEventListener<TArg1, TArg2, TArg3>(int eventType, Action<TArg1, TArg2, TArg3> handler)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().RemoveEventListener(eventType, handler);
|
EventMgr.Dispatcher.RemoveEventListener(eventType, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RemoveEventListener<T, U, V, W>(int eventType, Action<T, U, V, W> handler)
|
public static void RemoveEventListener<TArg1, TArg2, TArg3, TArg4>(int eventType, Action<TArg1, TArg2, TArg3, TArg4> handler)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().RemoveEventListener(eventType, handler);
|
EventMgr.Dispatcher.RemoveEventListener(eventType, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RemoveEventListener<T, U, V, W, X>(int eventType, Action<T, U, V, W, X> handler)
|
public static void RemoveEventListener<TArg1, TArg2, TArg3, TArg4, TArg5>(int eventType, Action<TArg1, TArg2, TArg3, TArg4, TArg5> handler)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().RemoveEventListener(eventType, handler);
|
EventMgr.Dispatcher.RemoveEventListener(eventType, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RemoveEventListener(int eventType, Delegate handler)
|
public static void RemoveEventListener(int eventType, Delegate handler)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().RemoveEventListener(eventType, handler);
|
EventMgr.Dispatcher.RemoveEventListener(eventType, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------string Event----------------------------//
|
//----------------------------string Event----------------------------//
|
||||||
public static bool AddEventListener(string eventType, Action handler)
|
public static bool AddEventListener(string eventType, Action handler)
|
||||||
{
|
{
|
||||||
return m_mgr.GetDispatcher().AddEventListener(StringId.StringToHash(eventType), handler);
|
return EventMgr.Dispatcher.AddEventListener(StringId.StringToHash(eventType), handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool AddEventListener<T>(string eventType, Action<T> handler)
|
public static bool AddEventListener<TArg1>(string eventType, Action<TArg1> handler)
|
||||||
{
|
{
|
||||||
return m_mgr.GetDispatcher().AddEventListener(StringId.StringToHash(eventType), handler);
|
return EventMgr.Dispatcher.AddEventListener(StringId.StringToHash(eventType), handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool AddEventListener<T, U>(string eventType, Action<T, U> handler)
|
public static bool AddEventListener<TArg1, TArg2>(string eventType, Action<TArg1, TArg2> handler)
|
||||||
{
|
{
|
||||||
return m_mgr.GetDispatcher().AddEventListener(StringId.StringToHash(eventType), handler);
|
return EventMgr.Dispatcher.AddEventListener(StringId.StringToHash(eventType), handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool AddEventListener<T, U, V>(string eventType, Action<T, U, V> handler)
|
public static bool AddEventListener<TArg1, TArg2, TArg3>(string eventType, Action<TArg1, TArg2, TArg3> handler)
|
||||||
{
|
{
|
||||||
return m_mgr.GetDispatcher().AddEventListener(StringId.StringToHash(eventType), handler);
|
return EventMgr.Dispatcher.AddEventListener(StringId.StringToHash(eventType), handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool AddEventListener<T, U, V, W>(string eventType, Action<T, U, V, W> handler)
|
public static bool AddEventListener<TArg1, TArg2, TArg3, TArg4>(string eventType, Action<TArg1, TArg2, TArg3, TArg4> handler)
|
||||||
{
|
{
|
||||||
return m_mgr.GetDispatcher().AddEventListener(StringId.StringToHash(eventType), handler);
|
return EventMgr.Dispatcher.AddEventListener(StringId.StringToHash(eventType), handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool AddEventListener<T, U, V, W, X>(string eventType, Action<T, U, V, W, X> handler)
|
public static bool AddEventListener<TArg1, TArg2, TArg3, TArg4, TArg5>(string eventType, Action<TArg1, TArg2, TArg3, TArg4, TArg5> handler)
|
||||||
{
|
{
|
||||||
return m_mgr.GetDispatcher().AddEventListener(StringId.StringToHash(eventType), handler);
|
return EventMgr.Dispatcher.AddEventListener(StringId.StringToHash(eventType), handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RemoveEventListener(string eventType, Action handler)
|
public static void RemoveEventListener(string eventType, Action handler)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().RemoveEventListener(StringId.StringToHash(eventType), handler);
|
EventMgr.Dispatcher.RemoveEventListener(StringId.StringToHash(eventType), handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RemoveEventListener<T>(string eventType, Action<T> handler)
|
public static void RemoveEventListener<TArg1>(string eventType, Action<TArg1> handler)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().RemoveEventListener(StringId.StringToHash(eventType), handler);
|
EventMgr.Dispatcher.RemoveEventListener(StringId.StringToHash(eventType), handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RemoveEventListener<T, U>(string eventType, Action<T, U> handler)
|
public static void RemoveEventListener<TArg1, TArg2>(string eventType, Action<TArg1, TArg2> handler)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().RemoveEventListener(StringId.StringToHash(eventType), handler);
|
EventMgr.Dispatcher.RemoveEventListener(StringId.StringToHash(eventType), handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RemoveEventListener<T, U, V>(string eventType, Action<T, U, V> handler)
|
public static void RemoveEventListener<TArg1, TArg2, TArg3>(string eventType, Action<TArg1, TArg2, TArg3> handler)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().RemoveEventListener(StringId.StringToHash(eventType), handler);
|
EventMgr.Dispatcher.RemoveEventListener(StringId.StringToHash(eventType), handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RemoveEventListener<T, U, V, W>(string eventType, Action<T, U, V, W> handler)
|
public static void RemoveEventListener<TArg1, TArg2, TArg3, TArg4>(string eventType, Action<TArg1, TArg2, TArg3, TArg4> handler)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().RemoveEventListener(StringId.StringToHash(eventType), handler);
|
EventMgr.Dispatcher.RemoveEventListener(StringId.StringToHash(eventType), handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RemoveEventListener<T, U, V, W, X>(string eventType, Action<T, U, V, W, X> handler)
|
public static void RemoveEventListener<TArg1, TArg2, TArg3, TArg4, TArg5>(string eventType, Action<TArg1, TArg2, TArg3, TArg4, TArg5> handler)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().RemoveEventListener(StringId.StringToHash(eventType), handler);
|
EventMgr.Dispatcher.RemoveEventListener(StringId.StringToHash(eventType), handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RemoveEventListener(string eventType, Delegate handler)
|
public static void RemoveEventListener(string eventType, Delegate handler)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().RemoveEventListener(StringId.StringToHash(eventType), handler);
|
EventMgr.Dispatcher.RemoveEventListener(StringId.StringToHash(eventType), handler);
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 分发消息接口
|
#region 分发消息接口
|
||||||
|
|
||||||
public static T Get<T>()
|
public static TArg1 Get<TArg1>()
|
||||||
{
|
{
|
||||||
return m_mgr.GetInterface<T>();
|
return EventMgr.GetInterface<TArg1>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Send(int eventType)
|
public static void Send(int eventType)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().Send(eventType);
|
EventMgr.Dispatcher.Send(eventType);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Send<T>(int eventType, T arg1)
|
public static void Send<TArg1>(int eventType, TArg1 arg1)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().Send(eventType, arg1);
|
EventMgr.Dispatcher.Send(eventType, arg1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Send<T, U>(int eventType, T arg1, U arg2)
|
public static void Send<TArg1, TArg2>(int eventType, TArg1 arg1, TArg2 arg2)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().Send(eventType, arg1, arg2);
|
EventMgr.Dispatcher.Send(eventType, arg1, arg2);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Send<T, U, V>(int eventType, T arg1, U arg2, V arg3)
|
public static void Send<TArg1, TArg2, TArg3>(int eventType, TArg1 arg1, TArg2 arg2, TArg3 arg3)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().Send(eventType, arg1, arg2, arg3);
|
EventMgr.Dispatcher.Send(eventType, arg1, arg2, arg3);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Send<T, U, V, W>(int eventType, T arg1, U arg2, V arg3, W arg4)
|
public static void Send<TArg1, TArg2, TArg3, TArg4>(int eventType, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().Send(eventType, arg1, arg2, arg3);
|
EventMgr.Dispatcher.Send(eventType, arg1, arg2, arg3);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Send<T, U, V, W, X>(int eventType, T arg1, U arg2, V arg3, W arg4, X arg5)
|
public static void Send<TArg1, TArg2, TArg3, TArg4, TArg5>(int eventType, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().Send(eventType, arg1, arg2, arg3, arg4, arg5);
|
EventMgr.Dispatcher.Send(eventType, arg1, arg2, arg3, arg4, arg5);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Send(int eventType, Delegate handler)
|
public static void Send(int eventType, Delegate handler)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().Send(eventType, handler);
|
EventMgr.Dispatcher.Send(eventType, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------string Send-------------------------------//
|
//-------------------------------string Send-------------------------------//
|
||||||
public static void Send(string eventType)
|
public static void Send(string eventType)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().Send(StringId.StringToHash(eventType));
|
EventMgr.Dispatcher.Send(StringId.StringToHash(eventType));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Send<T>(string eventType, T arg1)
|
public static void Send<TArg1>(string eventType, TArg1 arg1)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().Send(StringId.StringToHash(eventType), arg1);
|
EventMgr.Dispatcher.Send(StringId.StringToHash(eventType), arg1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Send<T, U>(string eventType, T arg1, U arg2)
|
public static void Send<TArg1, TArg2>(string eventType, TArg1 arg1, TArg2 arg2)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().Send(StringId.StringToHash(eventType), arg1, arg2);
|
EventMgr.Dispatcher.Send(StringId.StringToHash(eventType), arg1, arg2);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Send<T, U, V>(string eventType, T arg1, U arg2, V arg3)
|
public static void Send<TArg1, TArg2, TArg3>(string eventType, TArg1 arg1, TArg2 arg2, TArg3 arg3)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().Send(StringId.StringToHash(eventType), arg1, arg2, arg3);
|
EventMgr.Dispatcher.Send(StringId.StringToHash(eventType), arg1, arg2, arg3);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Send<T, U, V, W>(string eventType, T arg1, U arg2, V arg3, W arg4)
|
public static void Send<TArg1, TArg2, TArg3, TArg4>(string eventType, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().Send(StringId.StringToHash(eventType), arg1, arg2, arg3);
|
EventMgr.Dispatcher.Send(StringId.StringToHash(eventType), arg1, arg2, arg3);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Send<T, U, V, W, X>(string eventType, T arg1, U arg2, V arg3, W arg4, X arg5)
|
public static void Send<TArg1, TArg2, TArg3, TArg4, TArg5>(string eventType, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().Send(StringId.StringToHash(eventType), arg1, arg2, arg3, arg4, arg5);
|
EventMgr.Dispatcher.Send(StringId.StringToHash(eventType), arg1, arg2, arg3, arg4, arg5);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Send(string eventType, Delegate handler)
|
public static void Send(string eventType, Delegate handler)
|
||||||
{
|
{
|
||||||
m_mgr.GetDispatcher().Send(StringId.StringToHash(eventType), handler);
|
EventMgr.Dispatcher.Send(StringId.StringToHash(eventType), handler);
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace TEngine
|
namespace TEngine
|
||||||
{
|
{
|
||||||
public class StringId
|
public static class StringId
|
||||||
{
|
{
|
||||||
private static readonly Dictionary<string, int> eventTypeHashMap = new Dictionary<string, int>();
|
private static readonly Dictionary<string, int> eventTypeHashMap = new Dictionary<string, int>();
|
||||||
private static readonly Dictionary<int, string> eventHashToStringMap = new Dictionary<int, string>();
|
private static readonly Dictionary<int, string> eventHashToStringMap = new Dictionary<int, string>();
|
||||||
|
Reference in New Issue
Block a user