private void ParseNodeGraph(string moduleName, string folderPath)
{
List<string> nodeFiles = new List<string>();
SearchForFileType(folderPath, "*.json", nodeFiles);
Dictionary<string, GameMasterNode> addedNodes = new Dictionary<string, GameMasterNode>();
foreach (string filepath in nodeFiles)
{
GameMasterNode file = new GameMasterNode(moduleName, filepath);
addedNodes.Add(file.Path, file);
}
foreach (GameMasterNode node in addedNodes.Values)
{
node.Load(addedNodes);
}
CampaignNodeData currentCampaignData = null;
foreach (GameMasterNode node in addedNodes.Values)
{
if (node.NodeType == GameMasterNodeType.CAMPAIGN)
{
currentCampaignData = node.NodeData as CampaignNodeData;
mCampaignNodes.Add(node);
}
else if (node.Owner == null)
{
currentCampaignData.OrphanedNodes.Add(node);
}
}
mGameMasterNodes = mGameMasterNodes.Concat(addedNodes).ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
}