using System; namespace TEngine { /// /// 有限状态机基类。 /// public abstract class FsmBase { private string _name; /// /// 初始化有限状态机基类的新实例。 /// public FsmBase() { _name = string.Empty; } /// /// 获取有限状态机名称。 /// public string Name { get => _name; protected set => _name = value ?? string.Empty; } /// /// 获取有限状态机完整名称。 /// public string FullName => new TypeNamePair(OwnerType, _name).ToString(); /// /// 获取有限状态机持有者类型。 /// public abstract Type OwnerType { get; } /// /// 获取有限状态机中状态的数量。 /// public abstract int FsmStateCount { get; } /// /// 获取有限状态机是否正在运行。 /// public abstract bool IsRunning { get; } /// /// 获取有限状态机是否被销毁。 /// public abstract bool IsDestroyed { get; } /// /// 获取当前有限状态机状态名称。 /// public abstract string CurrentStateName { get; } /// /// 获取当前有限状态机状态持续时间。 /// public abstract float CurrentStateTime { get; } /// /// 有限状态机轮询。 /// /// 逻辑流逝时间,以秒为单位。 /// 当前已流逝时间,以秒为单位。 internal abstract void Update(float elapseSeconds, float realElapseSeconds); /// /// 关闭并清理有限状态机。 /// internal abstract void Shutdown(); } }