IRegister.cs 513 B

1234567891011121314151617181920212223242526272829
  1. using System.Threading.Tasks;
  2. namespace Model
  3. {
  4. public interface IRegister
  5. {
  6. void Register();
  7. }
  8. public abstract class MEvent<T, R>: IRegister
  9. {
  10. public void Register()
  11. {
  12. World.Instance.GetComponent<MessageComponent>().Register<T, R>(this.Run);
  13. }
  14. public abstract R Run(T t);
  15. }
  16. public abstract class MEventAsync<T, R> : IRegister
  17. {
  18. public void Register()
  19. {
  20. World.Instance.GetComponent<MessageComponent>().RegisterAsync<T, R>(this.Run);
  21. }
  22. public abstract Task<R> Run(T t);
  23. }
  24. }