mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 10:34:30 +08:00
- 实现了基础状态机StateMachine类,支持状态注册、切换和生命周期管理 - 创建了上下文感知状态机ContextAwareStateMachine,能够感知架构上下文并发送状态变更事件 - 定义了IState和IStateMachine抽象接口,规范状态和状态机的行为契约 - 添加了StateChangedEvent事件类,用于通知状态变更 - 实现了游戏专用状态机GameStateMachine,提供类型安全的状态检查和获取功能
26 lines
854 B
C#
26 lines
854 B
C#
namespace GFramework.Core.Abstractions.state;
|
||
|
||
/// <summary>
|
||
/// 状态机状态接口,定义了状态的基本行为和转换规则
|
||
/// </summary>
|
||
public interface IState
|
||
{
|
||
/// <summary>
|
||
/// 当状态被激活进入时调用
|
||
/// </summary>
|
||
/// <param name="from">从哪个状态转换而来,可能为null表示初始状态</param>
|
||
void OnEnter(IState? from);
|
||
|
||
/// <summary>
|
||
/// 当状态退出时调用
|
||
/// </summary>
|
||
/// <param name="to">将要转换到的目标状态,可能为null表示结束状态</param>
|
||
void OnExit(IState? to);
|
||
|
||
/// <summary>
|
||
/// 判断当前状态是否可以转换到目标状态
|
||
/// </summary>
|
||
/// <param name="target">目标状态</param>
|
||
/// <returns>如果可以转换则返回true,否则返回false</returns>
|
||
bool CanTransitionTo(IState target);
|
||
} |