public void StartNewLink(DataflowOutput output) { newLinkOutput = output; uiLinkTmp = Instantiate(linkPrefab, instance.panel).GetComponent <UINodeLink>(); uiLinkTmp.outputAnchor = newLinkOutput.transform.GetChild(1).GetComponent <RectTransform>(); uiLinkTmp.inputAnchor = instance.cursor; }
public void EndNewLink(DataflowInput input) { newLinkInput = input; uiLinkTmp.inputAnchor = input.transform.GetChild(1).GetComponent <RectTransform>(); //Check if the same or if type matches if (newLinkOutput.transform.parent.parent == newLinkInput.transform.parent.parent || (newLinkOutput.type != newLinkInput.type && newLinkInput.type != Dataflow.IOType.Activator)) { newLinkOutput = null; newLinkInput = null; Destroy(uiLinkTmp.gameObject); return; } //Remove already existing link if (newLinkInput.link != null) { if (!newLinkInput.noDefaultValue) { newLinkInput.transform.GetChild(0).gameObject.SetActive(true); } dataflow.DeleteLink(newLinkInput); Destroy(newLinkInput.uiLink.gameObject); } dataflow.AddLink(newLinkOutput, newLinkInput); newLinkInput.uiLink = uiLinkTmp; newLinkInput.transform.GetChild(0).gameObject.SetActive(false); newLinkOutput = null; newLinkInput = null; }
public void OpenDataflow(Dataflow d) { //Nodes List <DataflowNode> nodes = new List <DataflowNode>(); for (int n = 0; n < d.nodes.Count; n++) { DrawNode(d.nodes[n]); } //Links for (int n = 0; n < d.nodes.Count; n++) { DataflowNode node = d.nodes[n]; for (int i = 0; i < node.outputs.Count; i++) { for (int l = 0; l < node.outputs[i].links.Count; l++) { DataflowOutput output = node.outputs[i]; DataflowInput input = node.outputs[i].links[l]; UINodeLink uiNodeLink = Instantiate(Resources.Load <UINodeLink>("Link"), panel); uiNodeLink.outputAnchor = output.transform.GetChild(1).GetComponent <RectTransform>(); uiNodeLink.inputAnchor = input.transform.GetChild(1).GetComponent <RectTransform>(); input.uiLink = uiNodeLink; } } } dataflow = d; RefreshDataflowDropdown(); RefreshDroneDropdown(); }
public void OnPointerClick(PointerEventData eventData) { //Cancel linking nodes if (newLinkOutput != null && newLinkInput == null) { newLinkOutput = null; Destroy(uiLinkTmp.gameObject); } }
public void AddLink(DataflowOutput output, DataflowInput input) { output.links.Add(input); input.link = output; input.unlinkedValue = input.ValueToString(); }