Esempio n. 1
0
 public void SelectPort(FEIOPort port)
 {
     if (selectedPort == null)
     {
         selectedPort = port;
     }
     else
     {
         if (selectedPort != port)
         {
             LinkNode(selectedPort, port);
             selectedPort = null;
         }
         else
         {
             selectedPort = null;
         }
     }
 }
Esempio n. 2
0
    public void LinkNode(FEIOPort port1, FEIOPort port2)
    {
        switch (port1.isInput)
        {
        case true:
            if (!port1.isLinked)
            {
                switch (port2.isInput)
                {
                case true:
                    break;

                case false:
                    if (port1.nodeDataType == port2.nodeDataType)
                    {
                        FELink newLink = nodeLink;
                        newLink.nodeInSlot  = port2.ioNumber;
                        newLink.nodeOutSlot = port1.ioNumber;
                        newLink.firstPoint  = port2.transform;
                        newLink.secondPoint = port1.transform;
                        newLink.nodeIn      = port2.gameObject.GetComponentInParent <FEFundamentalNode>();
                        newLink.nodeOut     = port1.gameObject.GetComponentInParent <FEFundamentalNode>();
                        port1.isLinked      = true;

                        port1.totalLinks++;
                        port2.totalLinks++;

                        Color linkColor = GetCorrectColor(port2.nodeDataType);
                        newLink.GetComponent <LineRenderer>().startColor = linkColor;
                        newLink.GetComponent <LineRenderer>().endColor   = linkColor;

                        Instantiate(newLink);
                    }
                    break;
                }
            }
            break;

        case false:
            switch (port2.isInput)
            {
            case true:
                if (!port2.isLinked)
                {
                    if (port1.nodeDataType == port2.nodeDataType)
                    {
                        FELink newLink = nodeLink;
                        newLink.nodeInSlot  = port1.ioNumber;
                        newLink.nodeOutSlot = port2.ioNumber;
                        newLink.firstPoint  = port1.transform;
                        newLink.secondPoint = port2.transform;
                        newLink.nodeIn      = port1.gameObject.GetComponentInParent <FEFundamentalNode>();
                        newLink.nodeOut     = port2.gameObject.GetComponentInParent <FEFundamentalNode>();
                        port2.isLinked      = true;

                        port1.totalLinks++;
                        port2.totalLinks++;

                        Color linkColor = GetCorrectColor(port1.nodeDataType);
                        newLink.GetComponent <LineRenderer>().startColor = linkColor;
                        newLink.GetComponent <LineRenderer>().endColor   = linkColor;

                        Instantiate(newLink);
                    }
                }
                break;

            case false:
                break;
            }
            break;
        }
    }