public MainMenu()
 {
     currentState = Enums.MainMenuStates.MAIN;
     currentButton = Enums.MainMenuButtons.START;
     currentControlButton = Enums.MainMenuButtons.CONTROLNO;
     buttonPressed = true;
     controlWindowOpen = false;
     controlButtonPressed = true;
     options = new Options();
 }
        public void Update(Game1 Game)
        {
            switch (currentState)
            {
                case Enums.MainMenuStates.MAIN:
                    if ((Keyboard.GetState().IsKeyDown(Keys.W) || Keyboard.GetState().IsKeyDown(Keys.Up) || GamePad.GetState(0).IsButtonDown(Buttons.DPadUp) || GamePad.GetState(0).ThumbSticks.Left.Y > 0.5f) && !buttonPressed && !controlWindowOpen)
                    {
                        currentButton--;
                        if (currentButton < 0) currentButton = Enums.MainMenuButtons.EXIT;
                        buttonPressed = true;
                    }
                    if ((Keyboard.GetState().IsKeyDown(Keys.S) || Keyboard.GetState().IsKeyDown(Keys.Down) || GamePad.GetState(0).IsButtonDown(Buttons.DPadDown) || GamePad.GetState(0).ThumbSticks.Left.Y < -0.5f) && !buttonPressed && !controlWindowOpen)
                    {
                        currentButton++;
                        if (currentButton > Enums.MainMenuButtons.EXIT) currentButton = Enums.MainMenuButtons.START;
                        buttonPressed = true;
                    }
                    if ((Keyboard.GetState().IsKeyDown(Keys.Enter) || GamePad.GetState(0).IsButtonDown(Buttons.A)) && !buttonPressed)
                    {
                        buttonPressed = true;
                        switch (currentButton)
                        {
                            case Enums.MainMenuButtons.START:

                                controlWindowOpen = true;
                                break;
                            case Enums.MainMenuButtons.RESUME:
                                Game1.currentGameState = Game1.GameState.GAMELOOP;
                                break;
                            case Enums.MainMenuButtons.OPTIONS:
                                currentState = Enums.MainMenuStates.OPTION;
                                break;
                            case Enums.MainMenuButtons.CREDITS:
                                Game1.currentGameState = Game1.GameState.CREDITS;
                                break;
                            case Enums.MainMenuButtons.EXIT:
                                Game.Exit();
                                break;
                        }
                    }
                    if (Keyboard.GetState().GetPressedKeys().Count() == 0 &&
                        GamePad.GetState(0).IsButtonUp(Buttons.DPadUp) &&
                        GamePad.GetState(0).IsButtonUp(Buttons.A) &&
                        GamePad.GetState(0).IsButtonUp(Buttons.DPadDown) &&
                        GamePad.GetState(0).ThumbSticks.Left.Y < 0.5f &&
                        GamePad.GetState(0).ThumbSticks.Left.Y > -0.5f)
                    {
                        buttonPressed = false;
                    }
                    break;
                case Enums.MainMenuStates.OPTION:
                    options.Update(this);
                break;
            }
        }
        void newGameControlScreen(SpriteFont Font, SpriteBatch SpriteBatch, Dictionary<string, Texture2D> texturesDictionary, LoadAndSave loadAndSave, ref List<GameObject> allGameObjects, ref Player player, Game1 game1)
        {
            controlWindowOpen = true;

            if ((Keyboard.GetState().IsKeyDown(Keys.W) || Keyboard.GetState().IsKeyDown(Keys.Up) || GamePad.GetState(0).IsButtonDown(Buttons.DPadUp) || GamePad.GetState(0).ThumbSticks.Left.Y > 0.5f) && !controlButtonPressed && controlWindowOpen)
            {
                currentControlButton--;
                if (currentControlButton < Enums.MainMenuButtons.CONTROLYES) currentControlButton = Enums.MainMenuButtons.CONTROLNO;
                controlButtonPressed = true;
            }
            if ((Keyboard.GetState().IsKeyDown(Keys.S) || Keyboard.GetState().IsKeyDown(Keys.Down) || GamePad.GetState(0).IsButtonDown(Buttons.DPadDown) || GamePad.GetState(0).ThumbSticks.Left.Y < -0.5f) && !controlButtonPressed && controlWindowOpen)
            {
                currentControlButton++;
                if (currentControlButton > Enums.MainMenuButtons.CONTROLNO) currentControlButton = Enums.MainMenuButtons.CONTROLYES;
                controlButtonPressed = true;
            }
            switch (currentControlButton)
            {
                case Enums.MainMenuButtons.CONTROLYES:
                    SpriteBatch.Draw(texturesDictionary["MainMenu1"], new Rectangle(0, 0, 1920, 1080), Color.White);
                    break;
                case Enums.MainMenuButtons.CONTROLNO:
                    SpriteBatch.Draw(texturesDictionary["MainMenu2"], new Rectangle(0, 0, 1920, 1080), Color.White);
                    break;
            }

            if ((Keyboard.GetState().IsKeyDown(Keys.Enter)|| GamePad.GetState(0).IsButtonDown(Buttons.A)) && !controlButtonPressed)
            {
                switch (currentControlButton)
                {
                    case Enums.MainMenuButtons.CONTROLYES:
                        game1.NewGame();
                        LoadNewGame(loadAndSave);
                        Game1.currentGameState = Game1.GameState.GAMELOOP;
                        controlWindowOpen = false;
                        break;
                    case Enums.MainMenuButtons.CONTROLNO:
                        controlWindowOpen = false;
                        break;

                }
                controlButtonPressed = true;
            }

            if (Keyboard.GetState().GetPressedKeys().Count() == 0 && GamePad.GetState(0).IsButtonUp(Buttons.DPadUp) && GamePad.GetState(0).IsButtonUp(Buttons.A) && GamePad.GetState(0).IsButtonUp(Buttons.DPadDown) &&GamePad.GetState(0).ThumbSticks.Left.Y < 0.5f && GamePad.GetState(0).ThumbSticks.Left.Y > -0.5f)
            {
                controlButtonPressed = false;

            }

            SpriteBatch.DrawString(Font, "Ja", new Vector2(1400, 200), Color.Black, 0, new Vector2(0, 0), 1, SpriteEffects.None, 0);
            SpriteBatch.DrawString(Font, "Nein", new Vector2(1400, 360), Color.Black, 0, new Vector2(0, 0), 1, SpriteEffects.None, 0);
            SpriteBatch.DrawString(Font, "Echt jetzt?", new Vector2(1400, 50), Color.Black, 0, new Vector2(0, 0), 1, SpriteEffects.None, 0);
        }