public SkillNode getSkillTree(Way way) { buildSkillTree(); var root = new SkillNode(way, null); var rootChildren = findChildren(root); root.addChildren(rootChildren); return(root); }
private List <SkillNode> findChildren(SkillNode parent) { var children = parents[parent.getSkill().name]; var childNodes = new List <SkillNode>(); if (children.Count > 0) { foreach (var child in children) { var childNode = new SkillNode(child, parent); var foundNodeChildren = findChildren(childNode); childNode.addChildren(foundNodeChildren); childNodes.Add(childNode); } } return(childNodes); }