Exemple #1
0
        public Node <INode> AddNode(Node <INode> node, string guid, NodeData nodeData = null)
        {
            if (Nodes == null)
            {
                Nodes = new List <Node <INode> >();
            }

            var newNode = node;

            newNode.Initialize(guid, node.Name);
            if (nodeData != null)
            {
                newNode.XPosition = nodeData.XPosition;
                newNode.YPosition = nodeData.YPosition;
                newNode.XSize     = nodeData.SizeX;
                newNode.YSize     = nodeData.SizeY;
            }
            Nodes.Add(newNode);
            if (Injector != null)
            {
                Injector.RefreshConstellationEvents();
            }

            if (newNode.NodeType is ICustomNode)
            {
                (newNode.NodeType as ICustomNode).InitializeConstellation(NodesFactory.GetStaticConstellationScripts());
            }
            return(newNode);
        }
Exemple #2
0
        public Node <INode> AddNode(Node <INode> node, string guid, NodeData nodeData = null)
        {
            if (Nodes == null)
            {
                Nodes = new List <Node <INode> >();
            }

            var newNode = node;

            newNode.Initialize(guid, node.Name);
            if (nodeData != null)
            {
                newNode.XPosition = nodeData.XPosition;
                newNode.YPosition = nodeData.YPosition;
                newNode.XSize     = nodeData.SizeX;
                newNode.YSize     = nodeData.SizeY;
                for (var i = 0; i < newNode.Inputs.Count; i++)
                {
                    newNode.Inputs[i].Type = nodeData.Inputs[i].Type;
                }

                for (var i = 0; i < newNode.Outputs.Count; i++)
                {
                    newNode.Outputs[i].Type = nodeData.Outputs[i].Type;
                }
            }
            Nodes.Add(newNode);

            if (newNode.NodeType is ICustomNode)
            {
                (newNode.NodeType as ICustomNode).InitializeConstellation(NodesFactory.GetStaticConstellationScripts());
            }

            if (Injector != null)
            {
                Injector.RefreshConstellationEvents();
            }

            if (isConstellationInitialized)
            {
                if (newNode.NodeType is IAwakable)
                {
                    (newNode.NodeType as IAwakable).OnAwake();
                }
            }


            return(newNode);
        }