Exemple #1
0
        public void AddNode(NodeVisual n)
        {
            GameObject tmp = new GameObject("tmp");
            WaitAndDo  t   = tmp.AddComponent <WaitAndDo>();

            t.arg = n;
            t.act = (object arg) =>
            {
                NodeVisual node = (NodeVisual)arg;
                serializer.Add(node.node, new Position2(node.transform.position));
                serializer.PrepareForSerialization();
                if (node.GetType() == typeof(GroupInputNodeVisual))
                {
                    //group input
                    GroupInputNodeVisual nn = (GroupInputNodeVisual)node;
                    ((GroupInputNode)nn.node).host = this;
                    AddSortedIn(nn);
                    UpdateInputs();
                }
                else if (node.GetType() == typeof(GroupOutputNodeVisual))
                {
                    //group output
                    GroupOutputNodeVisual nn = (GroupOutputNodeVisual)node;
                    ((GroupOutputNode)nn.node).host = this;
                    AddSortedOut(nn);
                    UpdateOutputs();
                }
            };
            //if it's an input/output add it to the list
        }
Exemple #2
0
 internal void RemoveNode(NodeVisual node)
 {
     for (int i = 0; i < serializer.nodes.Length; i++)
     {
         if (serializer.tmpNodes[i] == node.node)
         {
             serializer.tmpNodes.RemoveAt(i);
             serializer.tmpPos.RemoveAt(i);
             serializer.PrepareForSerialization();
             if (node.GetType() == typeof(GroupOutputNodeVisual))
             {
                 groupOuts.Remove((GroupOutputNodeVisual)node);
             }
             else if (node.GetType() == typeof(GroupInputNodeVisual))
             {
                 groupIns.Remove((GroupInputNodeVisual)node);
             }
             //if it's an input/output remove it from list
             return;
         }
     }
     Debug.LogError("Couldn't remove node " + node.node);
 }