OperateComponent.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using System.Threading.Tasks;
  2. namespace WS
  3. {
  4. ///<summary>操作基类</summary>
  5. public abstract class BaseOperate : WSComponent
  6. {
  7. protected WSTaskComponent vtask;
  8. ///<summary>任务组件</summary>
  9. protected WSTaskComponent vTask
  10. {
  11. get
  12. {
  13. if (vtask == null)
  14. vtask = (WSTaskComponent)Parent;
  15. return vtask;
  16. }
  17. }
  18. ///<summary>Id</summary>
  19. public int Id;
  20. ///<summary>流程描述/名称</summary>
  21. public string Describe;
  22. ///<summary>是否完成</summary>
  23. public bool IsComplete;
  24. ///<summary>初始化操作数据</summary>
  25. ///<param name="json">数据</param>
  26. public virtual void InitData(string json) { }
  27. ///<summary>初始化</summary>
  28. public abstract void Init();
  29. ///<summary>开始操作</summary>
  30. public abstract void StartOperate();
  31. ///<summary>帧循环</summary>
  32. public abstract void Update();
  33. ///<summary>提示</summary>
  34. public virtual void Prompt() { }
  35. ///<summary>使当前流程执行到 开始 状态 (需要考虑到正在执行当前流程的情况)</summary>
  36. public virtual Task StartState() { return null; }
  37. ///<summary>使当前流程执行到 结束 状态 (需要考虑到正在执行当前流程的情况)</summary>
  38. public virtual Task EndState() { return null; }
  39. public override void Dispose()
  40. {
  41. base.Dispose();
  42. vtask = null;
  43. Id = 0;
  44. Describe = "";
  45. IsComplete = false;
  46. }
  47. }
  48. ///<summary>操作组件</summary>
  49. public abstract class OperateComponent<T> : BaseOperate where T : class
  50. {
  51. ///<summary>操作</summary>
  52. public T OperateData;
  53. public override void InitData(string json)
  54. {
  55. OperateData = LitJson.JsonMapper.ToObject<T>(json);
  56. }
  57. }
  58. }