Files
plugin-library/Assets/00.StaryEvo/Runtime/Rule/ICanRegisterEvent.cs
2025-03-31 11:16:52 +08:00

67 lines
2.5 KiB
C#

using System;
namespace Stary.Evo
{
public interface ICanRegisterEvent:IBelongToArchitecture
{
}
public static class CanRegisterEventExtension
{
public static IUnRegister RegisterEvent<T>(this ICanRegisterEvent self,T key,Action onEvent) where T : IConvertible
{
return self.GetArchitecture().RegisterEvent(key,onEvent);
}
public static IUnRegister RegisterEvent<T,T1>(this ICanRegisterEvent self,T key,Action<T1> onEvent) where T : IConvertible
{
return self.GetArchitecture().RegisterEvent(key,onEvent);
}
public static IUnRegister RegisterEvent<T,T1,T2>(this ICanRegisterEvent self,T key,Action<T1,T2> onEvent) where T : IConvertible
{
return self.GetArchitecture().RegisterEvent(key,onEvent);
}
public static IUnRegister RegisterEvent<T,T1,T2,T3>(this ICanRegisterEvent self,T key,Action<T1,T3> onEvent) where T : IConvertible
{
return self.GetArchitecture().RegisterEvent(key,onEvent);
}
public static IUnRegister RegisterEvent<T>(this ICanRegisterEvent self,T key,Action<object[]> onEvent) where T : IConvertible
{
return self.GetArchitecture().RegisterEvent(key,onEvent);
}
public static void UnRegisterEvent<T>(this ICanRegisterEvent self,T key,Action onEvent) where T : IConvertible
{
self.GetArchitecture().UnRegisterEvent(key,onEvent);
}
public static void UnRegisterEvent<T,T1>(this ICanRegisterEvent self,T key,Action<T1> onEvent) where T : IConvertible
{
self.GetArchitecture().UnRegisterEvent(key,onEvent);
}
public static void UnRegisterEvent<T,T1,T2>(this ICanRegisterEvent self,T key,Action<T1,T2> onEvent) where T : IConvertible
{
self.GetArchitecture().UnRegisterEvent(key,onEvent);
}
public static void UnRegisterEvent<T,T1,T2,T3>(this ICanRegisterEvent self,T key,Action<T1,T3> onEvent) where T : IConvertible
{
self.GetArchitecture().UnRegisterEvent(key,onEvent);
}
public static void UnRegisterEvent<T>(this ICanRegisterEvent self,T key,Action<object[]> onEvent) where T : IConvertible
{
self.GetArchitecture().UnRegisterEvent(key,onEvent);
}
}
}