Files
RebootKit/Runtime/Engine/Code/RR.Application.cs
2025-03-30 16:06:57 +02:00

52 lines
1.4 KiB
C#

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<IState> m_AppStateMachine;
void InitializeAppStateMachine() {
m_AppStateMachine = new StateMachine<IState>();
m_AppStateMachine.AddState(m_DIContext.Create<MainMenuState>(m_EngineConfigAsset.appConfig.mainMenuConfig));
m_AppStateMachine.AddState(m_DIContext.Create<PlayState>(m_EngineConfigAsset.appConfig.gameConfig));
}
void OpenMainMenu() {
m_AppStateMachine.TransitionTo<MainMenuState>();
}
void StartGame() {
m_AppStateMachine.TransitionTo<PlayState>();
}
bool IsMainMenuOpen() => m_AppStateMachine.IsStateActive<MainMenuState>();
bool IsPlaying() => m_AppStateMachine.IsStateActive<PlayState>();
}
}