ICanSubscribeEventExtension.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. using System;
  2. namespace Blue
  3. {
  4. public static class ICanSubscribeEventExtension
  5. {
  6. private static ITypeEventSystem _eventSystem;
  7. public static void SetEventSystem(ITypeEventSystem eventSystem)
  8. {
  9. _eventSystem = eventSystem;
  10. }
  11. public static IUnSubscribe SubscribeEvent<T>(this ICanSubscribeEvent self, Action<T> onEvent) where T : IEvent
  12. {
  13. return _eventSystem.SubscribeEvent<T>(onEvent);
  14. }
  15. public static IChainEventUnSubscribe SubscribeChainEvent<T,K>(this ICanSubscribeEvent self,Action<K> onEvent) where T : IChainEvent where K:IEvent
  16. {
  17. return _eventSystem.SubscribeChainEvent<T,K>(onEvent);
  18. }
  19. public static void UnSubscribeEvent<T>(this ICanSubscribeEvent self, Action<T> onEvent) where T : IEvent
  20. {
  21. _eventSystem.UnSubscribeEvent<T>(onEvent);
  22. }
  23. public static void UnSubscribeChainEvent<T>(this ICanSubscribeEvent self) where T:IChainEvent
  24. {
  25. _eventSystem.UnSubscribeChainEvent<T>();
  26. }
  27. public static void UnSubscribeEventFromChainEvent<T, K>(this ICanSubscribeEvent self) where T : IChainEvent where K : IEvent
  28. {
  29. _eventSystem.UnSubscribeEventFromChainEvent<T, K>();
  30. }
  31. }
  32. }