78 lines
2.1 KiB
C#
78 lines
2.1 KiB
C#
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
|
|
}
|
|
}
|