mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-07 17:21:16 +08:00
29 lines
945 B
C#
29 lines
945 B
C#
// Copyright (c) 2025-2026 GeWuYou
|
||
// SPDX-License-Identifier: Apache-2.0
|
||
|
||
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);
|
||
} |