using Chickensoft.Introspection; using Chickensoft.LogicBlocks; using Zennysoft.Game.Abstractions; namespace Zennysoft.Ma.Adapter; public partial class AppLogic { public partial record State { [Meta] public partial record MainMenu : State, IGet, IGet, IGet { public MainMenu() { this.OnEnter(() => { Get().ShouldLoadExistingGame = false; Output(new Output.SetupGameScene()); Get().OnMainMenuEntered(); Output(new Output.ShowMainMenu()); }); } public Transition On(in Input.NewGame input) { return To(); } public Transition On(in Input.LoadGame input) { Get().ShouldLoadExistingGame = true; return To(); } public Transition On(in Input.QuitGame input) { Output(new Output.ExitGame()); return ToSelf(); } } } }