public void Init() { if (_data == null) { _data = new ObstacleEdit(); } SnapToCurrentPosition(); }
public TileObstacleEdit(TileEdit tileEdit, ObstacleEdit obstacleEdit) { TileEdit = tileEdit; ObstacleEdit = obstacleEdit; }
private void UpdatePlaygroundObjects() { foreach (var tileEdit in _tileEdits) { if (tileEdit.Rectangle.IsMouseOver) { switch (_selectedItem) { case SelectedItem.Wall: tileEdit.IsWall = true; tileEdit.HasCoin = tileEdit.HasObstacle = tileEdit.IsEnd = tileEdit.IsStart = tileEdit.IsSpawn = false; tileEdit.Rectangle.Fill = Brushes.Black; break; case SelectedItem.Obstacle: if (!tileEdit.IsWall && !tileEdit.HasCoin && !tileEdit.IsStart && !tileEdit.IsEnd && !tileEdit.IsSpawn) { tileEdit.HasObstacle = true; var obs = new ObstacleEdit(tileEdit.Rectangle.Width * .8, tileEdit.Rectangle.Height * .8, tileEdit.X + (tileEdit.Rectangle.Width * .1), tileEdit.Y + (tileEdit.Rectangle.Height * .1)); _obstacleEdits.Add(obs); Canvas.SetTop(obs.Ellipse, obs.Y); Canvas.SetLeft(obs.Ellipse, obs.X); _editorView.EditorCanvas.Children.Add(obs.Ellipse); _tileObstacleEdits.Add(new TileObstacleEdit(tileEdit, obs)); } break; case SelectedItem.Coin: if (!tileEdit.IsWall && !tileEdit.HasObstacle && !tileEdit.IsStart && !tileEdit.IsEnd && !tileEdit.IsSpawn) { tileEdit.HasCoin = true; var coin = new CoinEdit(tileEdit.Rectangle.Width * .6, tileEdit.Rectangle.Height * .75, tileEdit.X + (tileEdit.Rectangle.Width * .2), tileEdit.Y + (tileEdit.Rectangle.Height * .15)); _coinEdits.Add(coin); Canvas.SetTop(coin.Ellipse, coin.Y); Canvas.SetLeft(coin.Ellipse, coin.X); _editorView.EditorCanvas.Children.Add(coin.Ellipse); _tileCoinEdits.Add(new TileCoinEdit(tileEdit, coin)); } break; case SelectedItem.End: tileEdit.IsEnd = true; tileEdit.HasCoin = tileEdit.HasObstacle = tileEdit.IsWall = tileEdit.IsStart = tileEdit.IsSpawn = false; tileEdit.Rectangle.Fill = Brushes.Red; _gotEnd = true; break; case SelectedItem.Start: tileEdit.IsStart = true; tileEdit.HasCoin = tileEdit.HasObstacle = tileEdit.IsEnd = tileEdit.IsWall = tileEdit.IsSpawn = false; tileEdit.Rectangle.Fill = Brushes.Blue; _gotStart = true; break; case SelectedItem.Spawn: tileEdit.IsSpawn = true; tileEdit.HasCoin = tileEdit.HasObstacle = tileEdit.IsEnd = tileEdit.IsWall = tileEdit.IsStart = false; tileEdit.Rectangle.Fill = Brushes.SaddleBrown; _gotSpawn = true; break; case SelectedItem.Erase: if (tileEdit.IsSpawn) { _gotSpawn = false; } if (tileEdit.IsEnd) { _gotEnd = false; } if (tileEdit.IsStart) { _gotStart = false; } tileEdit.HasCoin = tileEdit.HasObstacle = tileEdit.IsEnd = tileEdit.IsWall = tileEdit.IsStart = tileEdit.IsSpawn = false; tileEdit.Rectangle.Fill = Brushes.Green; break; } } } foreach (var obstacleEdit in _obstacleEdits) { if (obstacleEdit.Ellipse.IsMouseOver) { if (_selectedItem == SelectedItem.Erase) { //ze blijven wel in de array, maar voorzover ik zie boeit dan niet echt, boeit dus wel voor tileEdits, dit moet worden gematched en worden aangepast foreach (var tileObstacleEdit in _tileObstacleEdits) { if (obstacleEdit.Equals(tileObstacleEdit.ObstacleEdit)) { _tileEdits.Find(x => x.Equals(tileObstacleEdit.TileEdit)).HasObstacle = false; } } _editorView.EditorCanvas.Children.Remove(obstacleEdit.Ellipse); } } } foreach (var coinEdit in _coinEdits) { if (coinEdit.Ellipse.IsMouseOver) { if (_selectedItem == SelectedItem.Erase) { //ze blijven wel in de array, maar voorzover ik zie boeit dan niet echt, boeit dus wel voor tileEdits, dit moet worden gematched en worden aangepast foreach (var tileCoinEdit in _tileCoinEdits) { if (coinEdit.Equals(tileCoinEdit.CoinEdit)) { _tileEdits.Find(x => x.Equals(tileCoinEdit.TileEdit)).HasCoin = false; } } _editorView.EditorCanvas.Children.Remove(coinEdit.Ellipse); } } } }