IProcedureManager.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. //------------------------------------------------------------
  2. // Game Framework
  3. // Copyright © 2013-2021 loyalsoft. All rights reserved.
  4. // Homepage: http://www.game7000.com/
  5. // Feedback: http://www.game7000.com/
  6. //------------------------------------------------------------
  7. using GameFramework.Fsm;
  8. using System;
  9. namespace GameFramework.Procedure
  10. {
  11. /// <summary>
  12. /// 流程管理器接口。
  13. /// </summary>
  14. public interface IProcedureManager
  15. {
  16. /// <summary>
  17. /// 获取当前流程。
  18. /// </summary>
  19. ProcedureBase CurrentProcedure
  20. {
  21. get;
  22. }
  23. /// <summary>
  24. /// 获取当前流程持续时间。
  25. /// </summary>
  26. float CurrentProcedureTime
  27. {
  28. get;
  29. }
  30. /// <summary>
  31. /// 初始化流程管理器。
  32. /// </summary>
  33. /// <param name="fsmManager">有限状态机管理器。</param>
  34. /// <param name="procedures">流程管理器包含的流程。</param>
  35. void Initialize(IFsmManager fsmManager, params ProcedureBase[] procedures);
  36. /// <summary>
  37. /// 开始流程。
  38. /// </summary>
  39. /// <typeparam name="T">要开始的流程类型。</typeparam>
  40. void StartProcedure<T>() where T : ProcedureBase;
  41. /// <summary>
  42. /// 开始流程。
  43. /// </summary>
  44. /// <param name="procedureType">要开始的流程类型。</param>
  45. void StartProcedure(Type procedureType);
  46. /// <summary>
  47. /// 是否存在流程。
  48. /// </summary>
  49. /// <typeparam name="T">要检查的流程类型。</typeparam>
  50. /// <returns>是否存在流程。</returns>
  51. bool HasProcedure<T>() where T : ProcedureBase;
  52. /// <summary>
  53. /// 是否存在流程。
  54. /// </summary>
  55. /// <param name="procedureType">要检查的流程类型。</param>
  56. /// <returns>是否存在流程。</returns>
  57. bool HasProcedure(Type procedureType);
  58. /// <summary>
  59. /// 获取流程。
  60. /// </summary>
  61. /// <typeparam name="T">要获取的流程类型。</typeparam>
  62. /// <returns>要获取的流程。</returns>
  63. ProcedureBase GetProcedure<T>() where T : ProcedureBase;
  64. /// <summary>
  65. /// 获取流程。
  66. /// </summary>
  67. /// <param name="procedureType">要获取的流程类型。</param>
  68. /// <returns>要获取的流程。</returns>
  69. ProcedureBase GetProcedure(Type procedureType);
  70. }
  71. }