public BaseNode AddNode(BaseNode _node) { if (_node == null) { return(null); } GraphProcessorCache.UpdateStaticPorts(_node); _node.Enable(this); nodes[_node.GUID] = _node; if (variables == null) { CollectionVariables(); } IEnumerable <SharedVariable> nodeVariables = SharedVariableUtility.CollectionObjectSharedVariables(_node); variables.AddRange(nodeVariables); if (VarialbeOwner != null) { foreach (var variable in nodeVariables) { variable.InitializePropertyMapping(VarialbeOwner); } } onNodeAdded?.Invoke(_node); return(_node); }
private void CollectionVariables() { if (variables == null) { variables = new List <SharedVariable>(); } else { variables.Clear(); } foreach (var node in nodes.Values) { variables.AddRange(SharedVariableUtility.CollectionObjectSharedVariables(node)); } }