//------------------------------------------------------------ // Game Framework // Copyright © 2013-2021 loyalsoft. All rights reserved. // Homepage: http://www.game7000.com/ // Feedback: http://www.game7000.com/ //------------------------------------------------------------ using System; namespace GameFramework.Fsm { /// /// 有限状态机基类。 /// public abstract class FsmBase { private string m_Name; /// /// 初始化有限状态机基类的新实例。 /// public FsmBase() { m_Name = string.Empty; } /// /// 获取有限状态机名称。 /// public string Name { get { return m_Name; } protected set { m_Name = value ?? string.Empty; } } /// /// 获取有限状态机完整名称。 /// public string FullName { get { return new TypeNamePair(OwnerType, m_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(); } }