ETCancellationToken.cs 706 B

1234567891011121314151617181920212223242526272829303132
  1. using System;
  2. using System.Collections.Generic;
  3. namespace ETModel
  4. {
  5. [ObjectSystem]
  6. public class ETCancellationTokenDestroySystem: DestroySystem<ETCancellationToken>
  7. {
  8. public override void Destroy(ETCancellationToken self)
  9. {
  10. self.actions.Clear();
  11. }
  12. }
  13. public class ETCancellationToken: Entity
  14. {
  15. public readonly List<Action> actions = new List<Action>();
  16. public void Register(Action callback)
  17. {
  18. this.actions.Add(callback);
  19. }
  20. public void Cancel()
  21. {
  22. foreach (Action action in this.actions)
  23. {
  24. action.Invoke();
  25. }
  26. }
  27. }
  28. }