public GYamlFile(FileInfo fileObj) { FileObj = fileObj; YamlDoc = new GYamlDocument(this); if (Exists) { YamlDoc.Load(fileObj); } if (YamlDoc.IsLoaded) { YamlDoc.TryParse(); } }
public static bool TryParse(this GYamlDocument input) { GList <GValueSet <string, GYamlNodeType> > NodeTypesList = new GList <GValueSet <string, GYamlNodeType> > { new GValueSet <string, GYamlNodeType>("Block", GYamlNodeType.Block), new GValueSet <string, GYamlNodeType>("Child", GYamlNodeType.Child), new GValueSet <string, GYamlNodeType>("Item", GYamlNodeType.Item), new GValueSet <string, GYamlNodeType>("Entity", GYamlNodeType.Entity), new GValueSet <string, GYamlNodeType>("Template", GYamlNodeType.Template), new GValueSet <string, GYamlNodeType>("Container", GYamlNodeType.Container), new GValueSet <string, GYamlNodeType>("LootGroup", GYamlNodeType.LootGroup) }; if (input.Lines.Count == 0) { return(false); } bool MadeNode = false; GYamlNode newNode = new GYamlNode(GYamlNodeType.Unknown); foreach (string line in input.Lines) { string lineTemp = line; if (lineTemp.StartsWith(NodeBrackets[0]) && !MadeNode) { newNode = new GYamlNode(GYamlNodeType.Unknown); newNode.Lines.Add(line); lineTemp = lineTemp.TrimStart(NodeBrackets[0]).Replace(" ", string.Empty); for (int i = 0; i < NodeTypesList.Count; i++) { if (lineTemp.StartsWith(NodeTypesList[i].Val1)) { newNode.NodeType = NodeTypesList[i].Val2; if (lineTemp.RemoveFirst(NodeTypesList[i].Val1, out string outStr)) { lineTemp = outStr.TrimStart(' '); if (lineTemp.ToLower().StartsWith("id:") && lineTemp.TrySplit(": ", out string[] tempIDSplit) && tempIDSplit.Length == 2)
public bool Equals(GYamlDocument other) => other != null && EqualityComparer <GYamlFile> .Default.Equals(Parent, other.Parent) && EqualityComparer <GList <string> > .Default.Equals(Lines, other.Lines) && EqualityComparer <GYamlNode> .Default.Equals(Top, other.Top);