using Snake.Persistance; namespace view { public partial class MapChooser : Form { #region Fields private SnakeLevelLoader _level_loader; #endregion #region Properties public StoredSnakeLevel? SelectedLevel { get; private set; } #endregion #region Constructor public MapChooser(SnakeLevelLoader level_loader) { this._level_loader = level_loader; InitializeComponent(); foreach (var level in _level_loader.StoredLevels) { lstLevels.Items.Add(level.LevelName); } } #endregion #region Methods void ChooseLevel() { if (lstLevels.SelectedIndex == -1) { SelectedLevel = null; } else { SelectedLevel = _level_loader.StoredLevels[lstLevels.SelectedIndex]; Close(); } } #endregion #region Event handlers private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { if (lstLevels.SelectedIndex == -1) { txtEggRounds.Text = ""; txtObstacleCount.Text = ""; txtSize.Text = ""; txtSnakeLength.Text = ""; } else { var level = _level_loader.StoredLevels[lstLevels.SelectedIndex]; txtEggRounds.Text = level.NewEggRound.ToString(); txtObstacleCount.Text = level.Obstacles.Length.ToString(); txtSize.Text = $"{level.Size}x{level.Size}"; txtSnakeLength.Text = level.SnakeStartLength.ToString(); } } private void button1_Click(object sender, EventArgs e) { ChooseLevel(); } private void lstLevels_KeyUp(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { ChooseLevel(); } } #endregion } }