public void LoadContent(IContentLoader provider) { Select = provider.Load <SoundEffect>(@"Audio/SE/select"); Choose = provider.Load <SoundEffect>(@"Audio/SE/choose"); _stateManager = new GameStateManager(); // Screens TitleScreen = new TitleScreen(viewport, _stateManager, Select, Choose, InputHandler); contentBasedParts.Add(TitleScreen); GameConfigurationScreen = new GameConfigurationScreen(viewport, _stateManager); GameplayScreen = new GameplayScreen(viewport, _stateManager, Camera); // .DisposeWith(instanceDisposer); GameplayScreen.Initialize(); contentBasedParts.Add(GameplayScreen); LeaderboardScreen = new LeaderboardScreen(viewport, _stateManager); ImprovementScreen = new ImprovementScreen(viewport, _stateManager, Select, Choose); GameOverScreen = new GameOverScreen(viewport, _stateManager); OptionsScreen = new OptionsScreen(viewport, _stateManager, pixel, Select); KeyboardInputsScreen = new KeyboardInputsScreen(viewport, _stateManager); GamepadInputsScreen = new GamepadInputsScreen(viewport, _stateManager); _stateManager.AddScreens(GameOverScreen, OptionsScreen, TitleScreen, GameplayScreen, ImprovementScreen); _stateManager.ComponentAdded += (s, arg) => { updatableParts.Add(arg); drawableParts.Add(arg); }; _stateManager.ComponentRemoved += (s, arg) => { updatableParts.Remove(arg); drawableParts.Remove(arg); }; _stateManager.ChangeState(GameStateManager.State.TitleScreen); foreach (var item in contentBasedParts) { item.LoadContent(provider); } foreach (var item in ContentBasedParts) { item.LoadContent(provider); } }