protected override void Initialize() { GameState = GameStates.MainMenu; AppStateManager = new AppStateManager(this); RenderManager = new RenderManager(Content, Graphics.GraphicsDevice); InputManager = new InputManager(this); MenuManager = new MenuManager(RenderManager.GuiNode, InputManager, this); AppStateManager.Attach(InputManager); AppStateManager.Attach(MenuManager); Graphics.PreparingDeviceSettings += (object s, PreparingDeviceSettingsEventArgs args) => { args.GraphicsDeviceInformation.PresentationParameters.RenderTargetUsage = RenderTargetUsage.PreserveContents; }; Graphics.ApplyChanges(); base.Initialize(); }
public void ChangeGameState(string GameStateName) { bool HasMenuState = false; for (int i = 0; i < Enum.GetNames(typeof(GameStates)).Length; i++) { if (GameStateName.Contains(Enum.GetNames(typeof(GameStates))[i].ToString())) { GameState = (GameStates)Enum.Parse(typeof(GameStates), Enum.GetNames(typeof(GameStates))[i]); HasMenuState = true; break; } } if (!HasMenuState) { return; } if (GameStateName == "Exit") { this.Exit(); } /* * if (GameStateName.Contains("GamePlay") && GamePlayManager == null) * { * GamePlayManager = new GamePlayManager(this, RenderManager, InputManager, MenuManager); * AppStateManager.Attach(GamePlayManager); * } * else if (GameStateName == "MapEditor" && MapEditorManager == null) * { * MapEditorManager = new MapEditorManager(MenuManager.CurrentMenuContainer, InputManager); * AppStateManager.Attach(MapEditorManager); * } * else if (GameStateName == "StructureModelEditor" && StructureModelEditor == null) * { * StructureModelEditor = new StructureModelEditor(this, RenderManager, MenuManager.CurrentMenuContainer, InputManager); * AppStateManager.Attach(StructureModelEditor); * } * else if (GameStateName == "MainMenu") * { * if (GamePlayManager != null) * { * //GamePlayManager.Close(); * AppStateManager.Detach(GamePlayManager); * GamePlayManager = null; * } * if (MapEditorManager != null) * { * //MapEditorManager.Close(); * AppStateManager.Detach(MapEditorManager); * MapEditorManager = null; * } * if (StructureModelEditor != null) * { * StructureModelEditor.Close(); * AppStateManager.Detach(StructureModelEditor); * StructureModelEditor = null; * } * if (PatternEditor != null) * { * PatternEditor.Close(); * AppStateManager.Detach(PatternEditor); * PatternEditor = null; * } * if (WorldEditorManager != null) * { * WorldEditorManager.Close(); * AppStateManager.Detach(WorldEditorManager); * WorldEditorManager = null; * } * } * else if ( GameStateName == "VoxelPatternEditor") * { * PatternEditor = new VoxelPatternEditor(MenuManager.CurrentMenuContainer, RenderManager, InputManager); * AppStateManager.Attach(PatternEditor); * } */ if (GameStateName == "WorldTerrainEditor") { WorldEditorManager = new WorldTerrainEditor(this, RenderManager, MenuManager, MenuManager.CurrentMenuContainer, InputManager); AppStateManager.Attach(WorldEditorManager); } }