ILoadSystem.cs 566 B

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