// used internally for playtest preview public static string SaveAllNodesAsString() { // gather data if (MerinoPrefs.validateNodeTitles) { ValidateNodeTitles(); } var nodeInfo = new List <YarnSpinnerLoader.NodeInfo>(); // save data to string //todo: move back over to linq, we were getting null ref exception so using this for the time being var treeNodes = new List <MerinoTreeElement>(); foreach (var merinoTreeElement in MerinoData.TreeElements) { if (merinoTreeElement.leafType == MerinoTreeElement.LeafType.Node) { treeNodes.Add(merinoTreeElement); } } foreach (var treeNode in treeNodes) { // skip the root if (treeNode.depth == -1) { continue; } nodeInfo.Add(TreeNodeToYarnNode(treeNode)); } return(YarnSpinnerFileFormatConverter.ConvertNodesToYarnText(nodeInfo)); }
// used for file saving public static string SaveFileNodesAsString(int fileNodeID) { var nodeInfoList = new List <YarnSpinnerLoader.NodeInfo>(); var toTraverse = new List <int>() { fileNodeID }; var filterList = new List <int>(); while (toTraverse.Count > 0) { if (filterList.Contains(toTraverse[0]) == false) { filterList.Add(toTraverse[0]); var node = MerinoData.GetNode(toTraverse[0]); if (node != null && node.hasChildren) { toTraverse.AddRange(node.children.Select(x => x.id)); } } toTraverse.RemoveAt(0); } // export these nodes //todo: move back over to linq, we were getting null ref exception so using this for the time being var treeNodes = new List <MerinoTreeElement>(); foreach (var merinoTreeElement in MerinoData.TreeElements) { if (filterList.Contains(merinoTreeElement.id)) { treeNodes.Add(merinoTreeElement); } } // save data to string foreach (var treeNode in treeNodes) { // skip the root, and skip any non-node nodes if (treeNode.depth == -1 || treeNode.leafType != MerinoTreeElement.LeafType.Node) { continue; } nodeInfoList.Add(TreeNodeToYarnNode(treeNode)); } return(YarnSpinnerFileFormatConverter.ConvertNodesToYarnText(nodeInfoList)); }
// used internally for playtest preview public static string SaveAllNodesAsString(int onlyWithParentID = -1) { var treeNodes = onlyWithParentID >= 0 ? MerinoData.GetAllCachedChildren(onlyWithParentID) : MerinoData.TreeElements; if (MerinoPrefs.validateNodeTitles) { ValidateNodeTitles(treeNodes); } var nodeInfo = new List <YarnSpinnerLoader.NodeInfo>(); foreach (var treeNode in treeNodes) { if (treeNode.depth == -1 || treeNode.leafType != MerinoTreeElement.LeafType.Node) { continue; } nodeInfo.Add(TreeNodeToYarnNode(treeNode)); } return(YarnSpinnerFileFormatConverter.ConvertNodesToYarnText(nodeInfo)); }