/// <summary>
        /// Initializes a new instance of the <see cref="EinstellungenScreen"/> class.
        /// </summary>
        /// <param name="graphicsManager">The graphics manager.</param>
        /// <param name="screenManager">The screen manager.</param>
        /// <param name="currentPlayerId">The current player ID.</param>
        public EinstellungenScreen(IBallerburgGraphicsManager graphicsManager, IScreenManager screenManager, int currentPlayerId)
            : base(graphicsManager, screenManager, "Ballerburg3D")
        {
            playerId = currentPlayerId;

              lblInventar = new GamePlayMenuLabel(this, 0, graphicsManager) { Text = string.Format("{0}:", ResourceLoader.GetString("InventoryText")), Position = new Vector2(20, 70) };
              lblBevoelkerung = new GamePlayMenuLabel(this, 0, graphicsManager) { Text = "Bevölkerung:", Position = new Vector2(20, 170) };
              lblVerzinsung = new GamePlayMenuLabel(this, 0, graphicsManager) { Text = "Verzinsung:", Position = new Vector2(20, 220) };
              lblKaufen = new GamePlayMenuLabel(this, 0, graphicsManager) { Text = "Kaufen:", Position = new Vector2(20, 310) };

              // Inventar
              lblMoney = new GamePlayMenuLabel(this, 0, graphicsManager) { Text = screenManager.PlayerSettings[playerId].Money.ToString(CultureInfo.InvariantCulture) + " $", Position = new Vector2(220, 70) };
              lblCannons = new GamePlayMenuLabel(this, 0, graphicsManager) { Text = screenManager.PlayerSettings[playerId].NumCannons() + " Kanonen", Position = new Vector2(420, 70) };
              lblStone = new GamePlayMenuLabel(this, 0, graphicsManager) { Text = screenManager.PlayerSettings[playerId].Steinkugel.ToString(CultureInfo.InvariantCulture) + " Steinkugeln", Position = new Vector2(220, 120) };
              lblIron = new GamePlayMenuLabel(this, 0, graphicsManager) { Text = screenManager.PlayerSettings[playerId].Eisenkugeln.ToString(CultureInfo.InvariantCulture) + " Eisenkugeln", Position = new Vector2(420, 120) };

              // Bevölkerung
              lblNumBevoelkerung = new GamePlayMenuLabel(this, 0, graphicsManager) { Text = screenManager.PlayerSettings[playerId].Population.ToString(CultureInfo.InvariantCulture) + " Leute", Position = new Vector2(220, 170) };

              // Verzinsing
              sldVerzinsung = new HSlider(this, new Rectangle(220, 240, 300, 20), screenManager.PlayerSettings[playerId].Verzinsung);
              sldVerzinsung.ValueChanged += OnVerzinsungChanged;
              sldVerzinsung.MaxValue = 100;
              sldVerzinsung.MinValue = 0;
              sldVerzinsung.Value = screenManager.PlayerSettings[playerId].Verzinsung;
              lblZinssatz = new GamePlayMenuLabel(this, 0, graphicsManager) { Text = string.Format("{0}%", screenManager.PlayerSettings[playerId].Verzinsung), Position = new Vector2(340, 260) };

              // Kaufbuttons
              atbCannon = new ActionToggleButton(this, ResourceLoader.GetString("CannonText"), "4000$", 0) { Position = new Vector2(220, 310) };
              atbCannon.Selected += delegate
                                {
                                  screenManager.AudioManager.PlayKlickSound();
                                  screenManager.PlayerSettings[playerId].Money -= 4000;
                                  screenManager.PlayerSettings[playerId].AddCannon();
                                };

              atbPulver = new ActionToggleButton(this, ResourceLoader.GetString("PowderBuyText"), "1000$", 0) { Position = new Vector2(420, 310) };
              atbPulver.Selected += delegate
                                {
                                  screenManager.AudioManager.PlayKlickSound();
                                  screenManager.PlayerSettings[playerId].Money -= 1000;
                                  screenManager.PlayerSettings[playerId].AddPowder();
                                };
              atbEisenkugel = new ActionToggleButton(this, ResourceLoader.GetString("IronBallText"), "1000$", 0) { Position = new Vector2(420, 360) };
              atbEisenkugel.Selected += delegate
                                    {
                                      screenManager.AudioManager.PlayKlickSound();
                                      screenManager.PlayerSettings[playerId].Money -= 1000;
                                      screenManager.PlayerSettings[playerId].AddIronBall();
                                    };
              atbSteinkugel = new ActionToggleButton(this, ResourceLoader.GetString("StoneBallText"), "250$", 0) { Position = new Vector2(220, 360) };
              atbSteinkugel.Selected += delegate
                                    {
                                      screenManager.AudioManager.PlayKlickSound();
                                      screenManager.PlayerSettings[playerId].Money -= 250;
                                      screenManager.PlayerSettings[playerId].AddStoneBall();
                                    };

              // Weiter button
              weiterMenuEntry = new MenuEntry(this, "Weiter", 0) { Position = new Vector2(350, 450) };
              weiterMenuEntry.Selected += WeiterMenuEntrySelected;

              // Beenden button
              beendenMenuEntry = new MenuEntry(this, "Beenden", 0) { Position = new Vector2(500, 450) };
              beendenMenuEntry.Selected += BeendenMenuEntrySelected;

              ControlsContainer.Add(weiterMenuEntry);
              ControlsContainer.Add(beendenMenuEntry);
              ControlsContainer.Add(lblInventar);
              ControlsContainer.Add(lblMoney);
              ControlsContainer.Add(lblCannons);
              ControlsContainer.Add(lblBevoelkerung);
              ControlsContainer.Add(lblNumBevoelkerung);
              ControlsContainer.Add(lblVerzinsung);
              ControlsContainer.Add(lblKaufen);
              ControlsContainer.Add(lblStone);
              ControlsContainer.Add(lblIron);
              ControlsContainer.Add(atbCannon);
              ControlsContainer.Add(atbEisenkugel);
              ControlsContainer.Add(atbPulver);
              ControlsContainer.Add(atbSteinkugel);
              ControlsContainer.Add(sldVerzinsung);
              ControlsContainer.Add(lblZinssatz);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="MainMenuScreen"/> class.
        /// </summary>
        /// <param name="graphicsManager">The graphics manager.</param>
        /// <param name="screenManager">The screen manager.</param>
        public MainMenuScreen(IBallerburgGraphicsManager graphicsManager, IScreenManager screenManager)
            : base(graphicsManager, screenManager, "Ballerburg3D")
        {
            // Create the menu entries.
              // Starten Button
              spielStartenMenuEntry = new MenuEntry(this, "starten", 0) { Position = new Vector2(350, 450) };
              spielStartenMenuEntry.Selected += SpielStartenMenuEntrySelected;

              // Zurück button
              zurueckMenuEntry = new MenuEntry(this, ResourceLoader.GetString("BackText"), 0) { Position = new Vector2(500, 450) };
              zurueckMenuEntry.Selected += ZurueckMenuEntrySelected;

              // Anzahl Spieler Buttons
              var numPlayerList = new List<string> { "Anzahl: 2", "Anzahl: 3", "Anzahl: 4" };

              anzahlSpielerToggleButton = new ComboToggleButton(this, "Spieler", new Collection<string>(numPlayerList), 0, 0)
                                      {
                                        Position = new Vector2(10, 100)
                                      };
              anzahlSpielerToggleButton.Selected += ToggleNumPlayersMenuEntrySelected;

              spielOptionenMenuEntry = new MenuEntry(this, "Optionen", 0) { Position = new Vector2(10, 250) };
              spielOptionenMenuEntry.Selected += SpielOptionenMenuEntrySelected;

              soundMenuEntry = new MenuEntry(this, "Sound", 0) { Position = new Vector2(220, 250) };
              soundMenuEntry.Selected += SoundMenuEntrySelected;

              creditsMenuEntry = new MenuEntry(this, "Credits", 0) { Position = new Vector2(430, 250) };
              creditsMenuEntry.Selected += CreditsMenuEntrySelected;

              graphikMenuEntry = new MenuEntry(this, "Graphik", 0) { Position = new Vector2(220, 350) };
              graphikMenuEntry.Selected += GraphikMenuEntrySelected;

              spielerActionButtons = new ActionToggleButton[4];

              spielerActionButtons[0] = new ActionToggleButton(this, "Spieler 1", screenManager.PlayerSettings[0].PlayerName, 0)
                                    {
                                      Position = new Vector2(220, 100)
                                    };
              spielerActionButtons[0].Selected += Spieler1KonfigurierenMenuEntrySelected;
              screenManager.PlayerSettings[0].IsActive = true;

              spielerActionButtons[1] = new ActionToggleButton(this, "Spieler 2", screenManager.PlayerSettings[1].PlayerName, 0)
                                    {
                                      Position = new Vector2(430, 100)
                                    };
              spielerActionButtons[1].Selected += Spieler2KonfigurierenMenuEntrySelected;
              screenManager.PlayerSettings[1].IsActive = true;

              spielerActionButtons[2] = new ActionToggleButton(this, "Spieler 3", screenManager.PlayerSettings[2].PlayerName, 0)
                                    {
                                      Position = new Vector2(220, 150)
                                    };
              spielerActionButtons[2].Selected += Spieler3KonfigurierenMenuEntrySelected;
              spielerActionButtons[2].SetInactive();
              screenManager.PlayerSettings[2].IsActive = false;

              spielerActionButtons[3] = new ActionToggleButton(this, "Spieler 4", screenManager.PlayerSettings[3].PlayerName, 0)
                                    {
                                      Position = new Vector2(430, 150)
                                    };
              spielerActionButtons[3].Selected += Spieler4KonfigurierenMenuEntrySelected;
              spielerActionButtons[3].SetInactive();
              screenManager.PlayerSettings[3].IsActive = false;

              for (int i = 0; i < GameSettings.NumPlayers; i++)
              {
            spielerActionButtons[i].SetActive();
              }

              for (int i = GameSettings.NumPlayers; i < 4; i++)
              {
            spielerActionButtons[i].SetInactive();
              }

              ControlsContainer.Add(spielStartenMenuEntry);
              ControlsContainer.Add(zurueckMenuEntry);
              ControlsContainer.Add(anzahlSpielerToggleButton);
              ControlsContainer.Add(spielerActionButtons[0]);
              ControlsContainer.Add(spielerActionButtons[1]);
              ControlsContainer.Add(spielerActionButtons[2]);
              ControlsContainer.Add(spielerActionButtons[3]);
              ControlsContainer.Add(spielOptionenMenuEntry);
              ControlsContainer.Add(soundMenuEntry);
              ControlsContainer.Add(creditsMenuEntry);
              ControlsContainer.Add(graphikMenuEntry);

              ScreenActivated += OnScreenActivated;
        }