public void ActivateTile(Tile selectedBoardTile, TileType newTileType) { if (newTileType != TileType.Background) { //Remove any existing tiles Tile tileToRemove = null; foreach (Tile tile in ActiveTiles) { if (tile.BoardPosition == selectedBoardTile.BoardPosition) { tileToRemove = tile; } } if (tileToRemove != null) { ActiveTiles.Remove(tileToRemove); } //Add a new active tile Tile tileToAdd = new Tile(); if (LudimusGame.TileTypeLookup.ContainsKey(newTileType)) { tileToAdd.Type = newTileType; } tileToAdd.Initialize(selectedBoardTile.CurrentGlobalPosition, selectedBoardTile.Size, Graphics, LudimusGame.TileTypeLookup[newTileType]); tileToAdd.BoardPosition = selectedBoardTile.BoardPosition; ActiveTiles.Add(tileToAdd); } else if(newTileType == TileType.Background) { //Remove any current active tile at this position Tile tileToRemove = null; foreach(Tile tile in ActiveTiles) { if (tile.BoardPosition == selectedBoardTile.BoardPosition) { tileToRemove = tile; } } if (tileToRemove != null) ActiveTiles.Remove(tileToRemove); } }
public void Initialize(int boardWidth, int boardHeight, int tileWidth, int tileHeight, Point startlocation, GraphicsDeviceManager graphics) { StartLocation = startlocation; BoardTiles = new List<Tile>(); BoardWidth = boardWidth; BoardHeight = boardHeight; TileWidth = tileWidth; TileHeight = tileHeight; Graphics = graphics; for (int x = 0; x < BoardWidth; x++) { for (int y = 0; y < BoardHeight; y++) { Tile tileToAdd = new Tile(); tileToAdd.Initialize(new Point(StartLocation.X + TileWidth * x, StartLocation.Y + TileHeight * y), new Point(TileWidth, TileHeight), graphics); BoardTiles.Add(tileToAdd); } } }