namespace Zennysoft.Ma.Adapter; using Chickensoft.Introspection; using Chickensoft.LogicBlocks; using Zennysoft.Game.Abstractions; public partial class AppLogic { public partial record State { [Meta] public partial record SplashScreen : State, IGet { public SplashScreen() { this.OnEnter(() => Output(new Output.ShowSplashScreen())); OnAttach( () => Get().SplashScreenSkipped += OnSplashScreenSkipped ); OnDetach( () => Get().SplashScreenSkipped -= OnSplashScreenSkipped ); } public Transition On(in Input.FadeOutFinished input) => To(); public void OnSplashScreenSkipped() => Output(new Output.HideSplashScreen()); } } }