public void SelectPort(FEIOPort port) { if (selectedPort == null) { selectedPort = port; } else { if (selectedPort != port) { LinkNode(selectedPort, port); selectedPort = null; } else { selectedPort = null; } } }
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; } }