52 lines
1.4 KiB
C#
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>();
|
|
}
|
|
} |