using Pumkin.HelperFunctions;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;
namespace Pumkin.YAML
{
///
/// Temporary yaml thing. Bad, don't use
///
public static class PumkinsYAMLTools
{
public static string[] OpenFileGetBlocks(string filePath)
{
filePath = Helpers.LocalAssetsPathToAbsolutePath(filePath);
if(!File.Exists(filePath))
Debug.Log($"Invalid file at: {filePath}");
return GetBlocksFromText(File.ReadAllText(filePath));
}
public static string[] GetBlocksFromText(string text)
{
var lines = text.Split('\n');
var blocks = new List();
string block = "";
bool blockDone = false;
for(int i = 0; i < lines.Length; i++)
{
if(lines[i].StartsWith("---") || i == lines.Length - 1)
blockDone = true;
block += lines[i];
if(!string.IsNullOrEmpty(lines[i]))
block += '\n';
if(blockDone)
{
blockDone = false;
blocks.Add(block);
block = "";
}
}
return blocks.ToArray();
}
public static string[] BlockToLines(string block)
{
var split = block.Split('\n');
if(split.Length > 0)
return split.Select(s => s += "\n").ToArray();
return null;
}
public static string LinesToBlock(string[] lines)
{
return string.Concat(lines);
}
public static void WriteBlocksToFile(string filePath, string[] blocks)
{
filePath = Helpers.LocalAssetsPathToAbsolutePath(filePath);
string file = string.Concat(blocks);
File.WriteAllText(filePath, file);
}
}
}