コード例 #1
0
        protected void Load()
        {
            var nodesDeserialized       = XMLSaver.Deserialize <List <Node> >(nodesPath);
            var connectionsDeserialized = XMLSaver.Deserialize <List <Connection> >(connectionsPath);

            nodes       = new List <Node>();
            connections = new List <Connection>();

            foreach (var node in nodesDeserialized)
            {
                var dim = new Vector2(node.rect.width, node.rect.height);

                nodes.Add(new Node(
                              node.rect.position,
                              dim,
                              defaultNodeStyle,
                              OnClickInPoint,
                              OnClickOutPoint,
                              OnClickRemoveNode,
                              node.inPoint.id,
                              node.outPoint.id
                              ));
            }

            foreach (var connection in connectionsDeserialized)
            {
                var inPoint  = nodes.First(n => n.inPoint.id == connection.inPoint.id).inPoint;
                var outPoint = nodes.First(n => n.outPoint.id == connection.outPoint.id).outPoint;
                connections.Add(new Connection(inPoint, outPoint, OnClickRemoveConnection));
            }
        }
コード例 #2
0
        public void Deserialize()
        {
            window.Clear();

            window.selectorNodes = XMLSaver.Deserialize <List <SelectorNode> >(selectorNodesPath);
            foreach (var node in window.selectorNodes)
            {
                node.Init();
                window.nodes.Add(node);
            }

            window.actionNodes = XMLSaver.Deserialize <List <ActionNode> >(actionNodesPath);
            foreach (var node in window.actionNodes)
            {
                window.nodes.Add(node);
            }

            window.connections    = XMLSaver.Deserialize <List <Connection> >(connectionsPath);
            window.connectionPins = XMLSaver.Deserialize <List <ConnectionPin> >(pinsPath);

            var outputPins = new Dictionary <Qualifier, OutputConnectionPin>();

            foreach (var pin in window.connectionPins)
            {
                if (pin is InputConnectionPin inpin)
                {
                    var inputNode = window.nodes.Find(n => n.id == inpin.nodeId);
                    inpin.node = inputNode;
                }
                else if (pin is OutputConnectionPin outpin)
                {
                    foreach (var sn in window.selectorNodes)
                    {
                        foreach (var q in sn.selector.qualifiers)
                        {
                            if (q.id == outpin.ownerId)
                            {
                                outputPins.Add(q, outpin);
                            }
                        }
                    }
                }
            }

            foreach (var connection in window.connections)
            {
                connection.input  = window.connectionPins.Find(p => p.id == connection.inputId) as InputConnectionPin;
                connection.output = window.connectionPins.Find(p => p.id == connection.outputId) as OutputConnectionPin;
            }

            Signals.Get <QualifierPinsLoaded>().Dispatch(outputPins);
        }