IDeserializeSystem.cs 734 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using System;
  2. namespace ET
  3. {
  4. public interface IDeserialize
  5. {
  6. }
  7. public interface IDeserializeSystem: ISystemType
  8. {
  9. void Run(Entity o);
  10. }
  11. /// <summary>
  12. /// 反序列化后执行的System
  13. /// </summary>
  14. /// <typeparam name="T"></typeparam>
  15. [ObjectSystem]
  16. public abstract class DeserializeSystem<T> : IDeserializeSystem where T: Entity, IDeserialize
  17. {
  18. void IDeserializeSystem.Run(Entity o)
  19. {
  20. this.Deserialize((T)o);
  21. }
  22. Type ISystemType.SystemType()
  23. {
  24. return typeof(IDeserializeSystem);
  25. }
  26. InstanceQueueIndex ISystemType.GetInstanceQueueIndex()
  27. {
  28. return InstanceQueueIndex.None;
  29. }
  30. Type ISystemType.Type()
  31. {
  32. return typeof(T);
  33. }
  34. protected abstract void Deserialize(T self);
  35. }
  36. }