PerformSetup(Dictionary <string, object> deserializedJsonData) { var graphDescription = GraphDescriptionBuilder.BuildGraphDescriptionFromJson(deserializedJsonData); var terminalNodeIds = graphDescription.terminalNodeIds; var allNodes = graphDescription.allNodes; var allConnections = graphDescription.allConnections; /* * Validation: node names should not overlapping. */ { var nodeNames = allNodes.Select(node => node.nodeName).ToList(); var overlappings = nodeNames.GroupBy(x => x) .Where(group => 1 < group.Count()) .Select(group => group.Key) .ToList(); if (overlappings.Any()) { throw new AssetBundleGraphException("Duplicate node name found:" + overlappings[0] + " please rename and avoid same name."); } } var resultDict = new Dictionary <string, Dictionary <string, List <Asset> > >(); var cacheDict = new Dictionary <string, List <string> >(); foreach (var terminalNodeId in terminalNodeIds) { PerformSetupForNode(terminalNodeId, allNodes, allConnections, resultDict, cacheDict); } return(CollectResult(resultDict)); }
PerformRun( Dictionary <string, object> deserializedJsonData, Action <string, float> updateHandler = null ) { IntegratedGUIBundleBuilder.RemoveAllAssetBundleSettings(); var graphDescription = GraphDescriptionBuilder.BuildGraphDescriptionFromJson(deserializedJsonData); var terminalNodeIds = graphDescription.terminalNodeIds; var allNodes = graphDescription.allNodes; var allConnections = graphDescription.allConnections; var resultDict = new Dictionary <string, Dictionary <string, List <Asset> > >(); var cacheDict = new Dictionary <string, List <string> >(); foreach (var terminalNodeId in terminalNodeIds) { PerformRunForNode(terminalNodeId, allNodes, allConnections, resultDict, cacheDict, updateHandler); } return(CollectResult(resultDict)); }