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); } } }