using System.Collections.Generic;
using BaseGames.Core.Events;
namespace BaseGames.Core
{
///
/// 可插件化的游戏状态行为接口。
///
public interface IGameState
{
GameStateId Id { get; }
/// 合法的后继状态集合。GameStateMachine.TransitionTo() 据此校验。
IReadOnlyCollection ValidNextStates { get; }
void OnEnter(GameStateId previousState);
void OnExit(GameStateId nextState);
/// 每帧由 GameManager.Update() 调用(默认空实现)。
void Tick(float deltaTime);
}
}