事件模块拓展参数支持。

事件模块拓展参数支持。
This commit is contained in:
ALEXTANG
2023-10-10 18:13:51 +08:00
parent 6d41adffd9
commit 8dce78d6fb
3 changed files with 91 additions and 0 deletions

View File

@@ -231,5 +231,35 @@ namespace TEngine
CheckModify();
}
/// <summary>
/// 回调调用。
/// </summary>
/// <param name="arg1">事件参数1。</param>
/// <param name="arg2">事件参数2。</param>
/// <param name="arg3">事件参数3。</param>
/// <param name="arg4">事件参数4。</param>
/// <param name="arg5">事件参数5。</param>
/// <param name="arg6">事件参数6。</param>
/// <typeparam name="TArg1">事件参数1类型。</typeparam>
/// <typeparam name="TArg2">事件参数2类型。</typeparam>
/// <typeparam name="TArg3">事件参数3类型。</typeparam>
/// <typeparam name="TArg4">事件参数4类型。</typeparam>
/// <typeparam name="TArg5">事件参数5类型。</typeparam>
/// <typeparam name="TArg6">事件参数6类型。</typeparam>
public void Callback<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6>(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6)
{
_isExecute = true;
for (var i = 0; i < _listExist.Count; i++)
{
var d = _listExist[i];
if (d is Action<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6> action)
{
action(arg1, arg2, arg3, arg4, arg5, arg6);
}
}
CheckModify();
}
}
}

View File

@@ -151,6 +151,29 @@ namespace TEngine
}
}
/// <summary>
/// 发送事件。
/// </summary>
/// <param name="eventType">事件类型。</param>
/// <param name="arg1">事件参数1。</param>
/// <param name="arg2">事件参数2。</param>
/// <param name="arg3">事件参数3。</param>
/// <param name="arg4">事件参数4。</param>
/// <param name="arg5">事件参数5。</param>
/// <param name="arg6">事件参数6。</param>
/// <typeparam name="TArg1">事件参数1类型。</typeparam>
/// <typeparam name="TArg2">事件参数2类型。</typeparam>
/// <typeparam name="TArg3">事件参数3类型。</typeparam>
/// <typeparam name="TArg4">事件参数4类型。</typeparam>
/// <typeparam name="TArg5">事件参数5类型。</typeparam>
/// <typeparam name="TArg6">事件参数6类型。</typeparam>
public void Send<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6>(int eventType, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6)
{
if (_eventTable.TryGetValue(eventType, out var d))
{
d.Callback(arg1, arg2, arg3, arg4, arg5, arg6);
}
}
#endregion
}
}

View File

@@ -94,6 +94,23 @@ namespace TEngine
{
return _eventMgr.Dispatcher.AddEventListener(eventType, handler);
}
/// <summary>
/// 增加事件监听。
/// </summary>
/// <param name="eventType">事件类型。</param>
/// <param name="handler">事件处理回调。</param>
/// <typeparam name="TArg1">事件参数1类型。</typeparam>
/// <typeparam name="TArg2">事件参数2类型。</typeparam>
/// <typeparam name="TArg3">事件参数3类型。</typeparam>
/// <typeparam name="TArg4">事件参数4类型。</typeparam>
/// <typeparam name="TArg5">事件参数5类型。</typeparam>
/// <typeparam name="TArg6">事件参数6类型。</typeparam>
/// <returns></returns>
public static bool AddEventListener<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6>(int eventType, Action<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6> handler)
{
return _eventMgr.Dispatcher.AddEventListener(eventType, handler);
}
/// <summary>
/// 移除事件监听。
@@ -534,6 +551,27 @@ namespace TEngine
{
_eventMgr.Dispatcher.Send(RuntimeId.ToRuntimeId(eventType), arg1, arg2, arg3, arg4, arg5);
}
/// <summary>
///
/// </summary>
/// <param name="eventType">事件类型。</param>
/// <param name="arg1">事件参数1。</param>
/// <param name="arg2">事件参数2。</param>
/// <param name="arg3">事件参数3。</param>
/// <param name="arg4">事件参数4。</param>
/// <param name="arg5">事件参数5。</param>
/// <param name="arg6">事件参数6。</param>
/// <typeparam name="TArg1">事件参数1类型。</typeparam>
/// <typeparam name="TArg2">事件参数2类型。</typeparam>
/// <typeparam name="TArg3">事件参数3类型。</typeparam>
/// <typeparam name="TArg4">事件参数4类型。</typeparam>
/// <typeparam name="TArg5">事件参数5类型。</typeparam>
/// <typeparam name="TArg6">事件参数6类型。</typeparam>
public static void Send<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6>(int eventType, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6)
{
_eventMgr.Dispatcher.Send(eventType, arg1, arg2, arg3, arg4, arg5, arg6);
}
/// <summary>
///