private void MovePlayer(Vector2Int direction) { if (_player.IsMoving) { return; } Vector2Int oldPosition = _player.GridPosition; Vector2Int newPosition = oldPosition + direction; if (newPosition.x < 0 || newPosition.x >= _data.GridSize.x || newPosition.y < 0 || newPosition.y >= _data.GridSize.y) { return; } _player.Move(newPosition, false); if (_exitPlaced && !_entrancePlaced) { if (_tilesByPosition.ContainsKey(newPosition)) { LevelEditorTile tile = _tilesByPosition[newPosition]; tile.IncreaseDurability(_data.Tiles[tile.Durability].Prefab .GetComponent <SpriteRenderer>().sprite); } else { PlaceTile(_player.GridPosition); } } }
private LevelEditorTile PlaceTile(Vector2Int position) { LevelEditorTile newTile = Instantiate(_tilePrefab, transform); newTile.Place(position, _data.GridSize); _tilesByPosition.Add(position, newTile); _tileCount++; return(newTile); }
private string GenerateTilemap() { StringBuilder tilemap = new StringBuilder(); int width = _data.GridSize.x; int height = _data.GridSize.y; for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { Vector2Int position = new Vector2Int(x, height - y - 1); LevelEditorTile tile = _tilesByPosition.ContainsKey(position) ? _tilesByPosition[position] : null; tilemap.Append(tile ? _data.Tiles[tile.Durability - 1].Symbol : " "); } if (y < height - 1) { tilemap.AppendLine(); } } return(tilemap.ToString()); }