using RebootKit.Engine.Foundation; namespace RebootKit.Engine { class MainMenuState : IState { readonly MainMenuConfig m_Config; public MainMenuState(MainMenuConfig config) { m_Config = config; } public void Enter() { } public void Exit() { } } class PlayState : IState { readonly GameConfig m_Config; public PlayState(GameConfig config) { m_Config = config; } public void Enter() { } public void Exit() { } } public partial class RR { StateMachine m_AppStateMachine; void InitializeAppStateMachine() { m_AppStateMachine = new StateMachine(); m_AppStateMachine.AddState(m_DIContext.Create(m_EngineConfigAsset.appConfig.mainMenuConfig)); m_AppStateMachine.AddState(m_DIContext.Create(m_EngineConfigAsset.appConfig.gameConfig)); } void OpenMainMenu() { m_AppStateMachine.TransitionTo(); } void StartGame() { m_AppStateMachine.TransitionTo(); } bool IsMainMenuOpen() => m_AppStateMachine.IsStateActive(); bool IsPlaying() => m_AppStateMachine.IsStateActive(); } }