public static Dictionary <Vector2Int, float> BuildMountain(int x, int y, int levelsCount, int ringWidth, float ringHeight, int maxX, int maxZ)
        {
            var result = new Dictionary <Vector2Int, float>();

            var ringsToBeRaised = MapPiecesSelector.GetRingsAround(x, y, levelsCount, ringWidth, maxX, maxZ);

            for (int i = 0; i < levelsCount; ++i)
            {
                foreach (var tile in ringsToBeRaised[i])
                {
                    if (MapOperationValidator.IsValidPointOnMap(tile.x, tile.y, maxX, maxZ))
                    {
                        if (!result.ContainsKey(tile))
                        {
                            result.Add(tile, (levelsCount - i) * ringHeight);
                        }
                        else
                        {
                            result[tile] = (levelsCount - i) * ringHeight;
                        }
                    }
                }
            }
            return(result);
        }
        public void ColorRingsAround(int x, int y, int ringsCount, int ringWidth)
        {
            var rings = MapPiecesSelector.GetRingsAround(x, y, ringsCount, ringWidth, XResolution, ZResolution);

            foreach (var ring in rings)
            {
                foreach (var tile in ring.Value)
                {
                    ColorTileExact(tile.x, tile.y, _colors[ring.Key]);
                }
            }
        }
        public HashSet <Vector2Int> GetCircle(int x, int y, int radius)
        {
            var circle = MapPiecesSelector.GetRingsAround(x, y, 0, radius, XResolution, ZResolution);

            return(new HashSet <Vector2Int>(circle[0]));
        }