using System; using System.Collections.Generic; namespace TEngine { /// /// 有限状态机管理器。 /// public interface IFsmModule { /// /// 获取有限状态机数量。 /// int Count { get; } /// /// 检查是否存在有限状态机。 /// /// 有限状态机持有者类型。 /// 是否存在有限状态机。 bool HasFsm() where T : class; /// /// 检查是否存在有限状态机。 /// /// 有限状态机持有者类型。 /// 是否存在有限状态机。 bool HasFsm(Type ownerType); /// /// 检查是否存在有限状态机。 /// /// 有限状态机持有者类型。 /// 有限状态机名称。 /// 是否存在有限状态机。 bool HasFsm(string name) where T : class; /// /// 检查是否存在有限状态机。 /// /// 有限状态机持有者类型。 /// 有限状态机名称。 /// 是否存在有限状态机。 bool HasFsm(Type ownerType, string name); /// /// 获取有限状态机。 /// /// 有限状态机持有者类型。 /// 要获取的有限状态机。 IFsm GetFsm() where T : class; /// /// 获取有限状态机。 /// /// 有限状态机持有者类型。 /// 要获取的有限状态机。 FsmBase GetFsm(Type ownerType); /// /// 获取有限状态机。 /// /// 有限状态机持有者类型。 /// 有限状态机名称。 /// 要获取的有限状态机。 IFsm GetFsm(string name) where T : class; /// /// 获取有限状态机。 /// /// 有限状态机持有者类型。 /// 有限状态机名称。 /// 要获取的有限状态机。 FsmBase GetFsm(Type ownerType, string name); /// /// 获取所有有限状态机。 /// /// 所有有限状态机。 FsmBase[] GetAllFsms(); /// /// 获取所有有限状态机。 /// /// 所有有限状态机。 void GetAllFsms(List results); /// /// 创建有限状态机。 /// /// 有限状态机持有者类型。 /// 有限状态机持有者。 /// 有限状态机状态集合。 /// 要创建的有限状态机。 IFsm CreateFsm(T owner, params FsmState[] states) where T : class; /// /// 创建有限状态机。 /// /// 有限状态机持有者类型。 /// 有限状态机名称。 /// 有限状态机持有者。 /// 有限状态机状态集合。 /// 要创建的有限状态机。 IFsm CreateFsm(string name, T owner, params FsmState[] states) where T : class; /// /// 创建有限状态机。 /// /// 有限状态机持有者类型。 /// 有限状态机持有者。 /// 有限状态机状态集合。 /// 要创建的有限状态机。 IFsm CreateFsm(T owner, List> states) where T : class; /// /// 创建有限状态机。 /// /// 有限状态机持有者类型。 /// 有限状态机名称。 /// 有限状态机持有者。 /// 有限状态机状态集合。 /// 要创建的有限状态机。 IFsm CreateFsm(string name, T owner, List> states) where T : class; /// /// 销毁有限状态机。 /// /// 有限状态机持有者类型。 /// 是否销毁有限状态机成功。 bool DestroyFsm() where T : class; /// /// 销毁有限状态机。 /// /// 有限状态机持有者类型。 /// 是否销毁有限状态机成功。 bool DestroyFsm(Type ownerType); /// /// 销毁有限状态机。 /// /// 有限状态机持有者类型。 /// 要销毁的有限状态机名称。 /// 是否销毁有限状态机成功。 bool DestroyFsm(string name) where T : class; /// /// 销毁有限状态机。 /// /// 有限状态机持有者类型。 /// 要销毁的有限状态机名称。 /// 是否销毁有限状态机成功。 bool DestroyFsm(Type ownerType, string name); /// /// 销毁有限状态机。 /// /// 有限状态机持有者类型。 /// 要销毁的有限状态机。 /// 是否销毁有限状态机成功。 bool DestroyFsm(IFsm fsm) where T : class; /// /// 销毁有限状态机。 /// /// 要销毁的有限状态机。 /// 是否销毁有限状态机成功。 bool DestroyFsm(FsmBase fsm); } }