AlicizaX/Client/Packages/com.alicizax.unity.procedure/Runtime/Procedure/IProcedureManager.cs
陈思海 eb38f67131 init
2025-01-23 19:06:48 +08:00

69 lines
2.2 KiB
C#

using System;
using AlicizaX.Fsm.Runtime;
using AlicizaX.Runtime;
namespace AlicizaX.Procedure.Runtime
{
/// <summary>
/// 流程管理器接口。
/// </summary>
public interface IProcedureManager:IModule
{
/// <summary>
/// 获取当前流程。
/// </summary>
ProcedureBase CurrentProcedure { get; }
/// <summary>
/// 获取当前流程持续时间。
/// </summary>
float CurrentProcedureTime { get; }
/// <summary>
/// 初始化流程管理器。
/// </summary>
/// <param name="fsmManager">有限状态机管理器。</param>
/// <param name="procedures">流程管理器包含的流程。</param>
void Initialize(IFsmManager fsmManager, params ProcedureBase[] procedures);
/// <summary>
/// 开始流程。
/// </summary>
/// <typeparam name="T">要开始的流程类型。</typeparam>
void StartProcedure<T>() where T : ProcedureBase;
/// <summary>
/// 开始流程。
/// </summary>
/// <param name="procedureType">要开始的流程类型。</param>
void StartProcedure(Type procedureType);
/// <summary>
/// 是否存在流程。
/// </summary>
/// <typeparam name="T">要检查的流程类型。</typeparam>
/// <returns>是否存在流程。</returns>
bool HasProcedure<T>() where T : ProcedureBase;
/// <summary>
/// 是否存在流程。
/// </summary>
/// <param name="procedureType">要检查的流程类型。</param>
/// <returns>是否存在流程。</returns>
bool HasProcedure(Type procedureType);
/// <summary>
/// 获取流程。
/// </summary>
/// <typeparam name="T">要获取的流程类型。</typeparam>
/// <returns>要获取的流程。</returns>
ProcedureBase GetProcedure<T>() where T : ProcedureBase;
/// <summary>
/// 获取流程。
/// </summary>
/// <param name="procedureType">要获取的流程类型。</param>
/// <returns>要获取的流程。</returns>
ProcedureBase GetProcedure(Type procedureType);
}
}