public override void Decorate(Level level) { var painter = new RoomPainter(level, this); DecorativeTileMap.SpawnTorch(Bounds.Left + 4, Bounds.Bottom + 4); DecorativeTileMap.SpawnTorch(Bounds.Left + 7, Bounds.Bottom + 4); //level.DecorativeTileMap.SpawnSideTorch(Bounds.Left + 3, Bounds.Bottom + 4, false); //level.DecorativeTileMap.SpawnSideTorch(Bounds.Left + 8, Bounds.Bottom + 4, true); //level.DecorativeTileMap.SpawnSideTorch(Bounds.Left + 3, Bounds.Bottom + 7, false); //level.DecorativeTileMap.SpawnSideTorch(Bounds.Left + 8, Bounds.Bottom + 7, true); if (!painter.IsFloor(Bounds.Left + 3, Bounds.Top - 1)) { DecorativeTileMap.SpawnTorch(Bounds.Left + 3, Bounds.Top - 1); } if (!painter.IsFloor(Bounds.Right - 4, Bounds.Top - 1)) { DecorativeTileMap.SpawnTorch(Bounds.Right - 4, Bounds.Top - 1); } if (!painter.IsFloor(Bounds.Left, Bounds.Bottom + 3)) { DecorativeTileMap.SpawnSideTorch(Bounds.Left + 1, Bounds.Bottom + 3, true); } if (!painter.IsFloor(Bounds.Left, Bounds.Top - 4)) { DecorativeTileMap.SpawnSideTorch(Bounds.Left + 1, Bounds.Top - 4, true); } if (!painter.IsFloor(Bounds.Right - 1, Bounds.Bottom + 3)) { DecorativeTileMap.SpawnSideTorch(Bounds.Right - 2, Bounds.Bottom + 3, false); } if (!painter.IsFloor(Bounds.Right - 1, Bounds.Top - 4)) { DecorativeTileMap.SpawnSideTorch(Bounds.Right - 2, Bounds.Top - 4, false); } }
public virtual List <Vector2Int> GetPossibleSpawnLocations(Level level) { var res = new List <Vector2Int>(); var painter = new RoomPainter(level, this); for (int i = Bounds.Left + 1; i < Bounds.Right - 1; i++) { for (int j = Bounds.Bottom + 1; j < Bounds.Top - 1; j++) { if (painter.IsFloor(i, j)) { res.Add(new Vector2Int(i, j)); } } } return(res); }