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 DeleteLink(DataflowInput input) { input.link = null; switch (input.type) { case IOType.Number: input.valueFloat = float.Parse(input.unlinkedValue); break; case IOType.Boolean: input.valueBoolean = bool.Parse(input.unlinkedValue); break; } }
public void DeleteLinkFromInput(DataflowInput input) { if (input.link != null) { if (!input.noDefaultValue) { input.transform.GetChild(0).gameObject.SetActive(true); } dataflow.DeleteLink(input); Destroy(input.uiLink.gameObject); } }
protected DataflowInput AddInput(string name, Dataflow.IOType type) { DataflowInput di = new DataflowInput() { name = name, type = type, node = this }; if (type == Dataflow.IOType.TargetsList || type == Dataflow.IOType.Target || type == Dataflow.IOType.CoordinatesList) { di.noDefaultValue = true; } inputs.Add(di); return(di); }
public void DrawInput(DataflowInput input, RectTransform nodeRT, Transform parent) { RectTransform inputRT = Instantiate(inputPrefab, parent).GetComponent <RectTransform>(); inputRT.GetComponent <BoundTooltipTrigger>().text = input.name; //Input Field for default value inputRT.GetChild(0).GetComponent <InputField>().text = input.ValueToString(); InputField ipf = inputRT.GetChild(0).GetComponent <InputField>(); switch (input.type) { case Dataflow.IOType.Number: ipf.contentType = InputField.ContentType.DecimalNumber; break; case Dataflow.IOType.Boolean: ipf.contentType = InputField.ContentType.Standard; break; } if (input.link != null || input.noDefaultValue || input.type == Dataflow.IOType.Activator) { inputRT.GetChild(0).gameObject.SetActive(false); } //Icon type Image icon = inputRT.GetChild(1).GetComponent <Image>(); switch (input.type) { case Dataflow.IOType.Number: icon.color = Color.green; break; case Dataflow.IOType.Boolean: icon.color = Color.yellow; break; case Dataflow.IOType.Activator: icon.color = Color.red; break; case Dataflow.IOType.TargetsList: icon.color = Color.gray; break; case Dataflow.IOType.CoordinatesList: icon.color = Color.white; break; case Dataflow.IOType.Target: icon.color = Color.blue; break; } inputRT.GetComponent <UINodeInput>().input = input; input.transform = inputRT; }
public void AddLink(DataflowOutput output, DataflowInput input) { output.links.Add(input); input.link = output; input.unlinkedValue = input.ValueToString(); }