ICanTriggerEventExtension.cs 971 B

1234567891011121314151617181920212223242526272829
  1. namespace Blue
  2. {
  3. public static class ICanTriggerEventExtension
  4. {
  5. private static ITypeEventSystem _eventSystem;
  6. public static void SetEventSystem(ITypeEventSystem eventSystem)
  7. {
  8. _eventSystem = eventSystem;
  9. }
  10. public static void TriggerEvent<T>(this ICanTriggerEvent self) where T:IEvent,new()
  11. {
  12. _eventSystem.TriggerEvent<T>();
  13. }
  14. public static void TriggerEvent<T>(this ICanTriggerEvent self,T e) where T : IEvent
  15. {
  16. _eventSystem.TriggerEvent(e);
  17. }
  18. public static void TriggerChainEvent<T>(this ICanTriggerEvent self,params IEvent[] events) where T : IChainEvent
  19. {
  20. _eventSystem.TriggerChainEvent<T>(events);
  21. }
  22. public static void TriggerChainEvent<T>(this ICanTriggerEvent self) where T : IChainEvent
  23. {
  24. _eventSystem.TriggerChainEvent<T>();
  25. }
  26. }
  27. }