//takes a list of tiles and highlights them all. private void highlightTiles(LinkedList<Tile> tiles, Color color) { Tile tile; while (tiles.Count > 0){ tile = tiles.First.Value; tiles.RemoveFirst(); tile.highlight(color); } }
public void Update(Tile selectedTool) { MouseState mouseState = Mouse.GetState(); int mousex = mouseState.X; int mousey = mouseState.Y; //if mouse is within the map, do mouse over... if ((mousex > 10 && mousex < MAP_WIDTH + 10) && (mousey > 10 && mousey < MAP_HEIGHT + 10)) { double tempx = (mousex - 10) / pixelsperside; int tilex = (int)Math.Floor(tempx); double tempy = (mousey - 10) / pixelsperside; int tiley = (int)Math.Floor(tempy); if (mouseState.LeftButton == ButtonState.Pressed) { TileType selectedType = selectedTool.getType(); if (selectedType == TileType.PLAYER) { Tile cur = map[tilex][tiley]; if (cur.getType() != TileType.WALL) { if (playertile == null) playertile = new Tile(tilex, tiley, cur.getX(), cur.getY(), cur.getLength(), selectedTool.getTexture(), selectedTool.getColor()); else { playerx = tilex; playery = tiley; playertile.setX(cur.getX()); playertile.setY(cur.getY()); playertile.setMapX(tilex); playertile.setMapY(tiley); } } } else if (selectedType == TileType.MONSTER) { Tile cur = map[tilex][tiley]; if (cur.getType() != TileType.WALL) { if (monstertile == null) monstertile = new Tile(tilex, tiley, cur.getX(), cur.getY(), cur.getLength(), selectedTool.getTexture(), selectedTool.getColor()); else { monsterx = tilex; monstery = tiley; monstertile.setX(cur.getX()); monstertile.setY(cur.getY()); monstertile.setMapX(tilex); monstertile.setMapY(tiley); } } } else { map[tilex][tiley].applyTool(selectedTool); } } if (highlighted != null) highlighted.unhighlight(); highlighted = map[tilex][tiley]; highlighted.highlight(); } }