Example #1
0
        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);
                }
            }
        }
Example #2
0
        private LevelEditorTile PlaceTile(Vector2Int position)
        {
            LevelEditorTile newTile = Instantiate(_tilePrefab, transform);

            newTile.Place(position, _data.GridSize);
            _tilesByPosition.Add(position, newTile);
            _tileCount++;
            return(newTile);
        }
Example #3
0
        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());
        }