/// <summary> /// Splice all trees in the "splice" area of the editor and return "true" if new trees were spliced. /// </summary> /// <returns></returns> /// //TODO: Swap this to a reactive approach. public bool SpliceIntoRunner() { if (SpliceList != null) { foreach (var behaviorAsset in SpliceList) { if (behaviorAsset == null) { return(false); } var spliceTree = behaviorAsset.LoadFromJSON(); foreach (var behavior in spliceTree.Children) { if (behavior.Depth == -1 || behavior.Name == "root") { continue; } dynamic newBehavior = Activator.CreateInstance(Type.GetType(((BehaviorTreeElement)behavior).ElementType), behavior.Name, behavior.Depth, behavior.ID); newBehavior.BehaviorTreeManager = this; Runner.AddChild(newBehavior); } } return(true); } else { return(false); } }