using System; namespace TEngine { /// /// 流程管理器接口。 /// public interface IProcedureModule { /// /// 获取当前流程。 /// ProcedureBase CurrentProcedure { get; } /// /// 获取当前流程持续时间。 /// float CurrentProcedureTime { get; } /// /// 初始化流程管理器。 /// /// 有限状态机管理器。 /// 流程管理器包含的流程。 void Initialize(IFsmModule fsmModule, params ProcedureBase[] procedures); /// /// 开始流程。 /// /// 要开始的流程类型。 void StartProcedure() where T : ProcedureBase; /// /// 开始流程。 /// /// 要开始的流程类型。 void StartProcedure(Type procedureType); /// /// 是否存在流程。 /// /// 要检查的流程类型。 /// 是否存在流程。 bool HasProcedure() where T : ProcedureBase; /// /// 是否存在流程。 /// /// 要检查的流程类型。 /// 是否存在流程。 bool HasProcedure(Type procedureType); /// /// 获取流程。 /// /// 要获取的流程类型。 /// 要获取的流程。 ProcedureBase GetProcedure() where T : ProcedureBase; /// /// 获取流程。 /// /// 要获取的流程类型。 /// 要获取的流程。 ProcedureBase GetProcedure(Type procedureType); /// /// 重启流程。 /// 默认使用第一个流程作为启动流程。 /// /// 新的的流程。 /// 是否重启成功。 /// 重启异常。 bool RestartProcedure(params ProcedureBase[] procedures); } }