Beispiel #1
0
        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();
        }
Beispiel #2
0
        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);
            }
        }