using Code.Infrastructure.Audio; using Code.Infrastructure.Camera; using Code.Infrastructure.Input; using Code.Infrastructure.UI; using Reflex.Attributes; namespace Code.Infrastructure.App { public enum AppStates { Bootstrap, Gameplay, MainMenu, Platformer } public class AppStateMachineContext { [Inject] public SceneLoader.SceneLoader SceneLoader { get; set; } [Inject] public CameraStateMachine Camera { get; set; } [Inject] public CameraFactory CameraFactory { get; set; } [Inject] public IUIService UIService { get; set; } [Inject] public IAudioFactory AudioFactory { get; set; } [Inject] public IAudioService AudioService { get; set; } [Inject] public IInputService InputService { get; set; } public AppStateMachine StateMachine { get; set; } } [Generators.StateMachine(typeof(AppStateMachineContext),typeof(AppStates))] public partial class AppStateMachine { } }