IDestroySystem.cs 593 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. using System;
  2. namespace ET
  3. {
  4. public interface IDestroy
  5. {
  6. }
  7. public interface IDestroySystem: ISystemType
  8. {
  9. void Run(Entity o);
  10. }
  11. [ObjectSystem]
  12. public abstract class DestroySystem<T> : IDestroySystem where T: Entity, IDestroy
  13. {
  14. void IDestroySystem.Run(Entity o)
  15. {
  16. this.Destroy((T)o);
  17. }
  18. Type ISystemType.SystemType()
  19. {
  20. return typeof(IDestroySystem);
  21. }
  22. InstanceQueueIndex ISystemType.GetInstanceQueueIndex()
  23. {
  24. return InstanceQueueIndex.None;
  25. }
  26. Type ISystemType.Type()
  27. {
  28. return typeof(T);
  29. }
  30. protected abstract void Destroy(T self);
  31. }
  32. }