//SL-- ///Adds a new input port definition to the Macro public bool AddInputDefinition(DynamicPortDefinition def) { if (parameters.Find(d => d.ID == def.ID) == null) { parameters.Add(def); return(true); } return(false); }
///Adds a new output port definition to the Macro public bool AddOutputDefinition(DynamicPortDefinition def) { if (outputDefinitions.Find(d => d.ID == def.ID) == null) { outputDefinitions.Add(def); return(true); } return(false); }
///Adds a new output port definition to the Macro public Port AddOutputDefinition(DynamicPortDefinition def) { if (outputDefinitions.Find(d => d.ID == def.ID) == null) { outputDefinitions.Add(def); exit.GatherPorts(); return(exit.GetInputPort(def.ID)); } return(null); }
///Adds a new input port definition to the Macro public Port AddInputDefinition(DynamicPortDefinition def) { if (inputDefinitions.Find(d => d.ID == def.ID) == null) { inputDefinitions.Add(def); entry.GatherPorts(); return(entry.GetOutputPort(def.ID)); } return(null); }
protected override UnityEditor.GenericMenu OnDragAndDropPortContextMenu(UnityEditor.GenericMenu menu, Port port) { if (port is ValueInput || port is FlowInput) { menu.AddItem(new GUIContent(string.Format("Promote to new Input '{0}'", port.name)), false, () => { var def = new DynamicPortDefinition(port.name, port.type); if (macro.AddInputDefinition(def)) { GatherPorts(); BinderConnection.Create(GetOutputPort(def.ID), port); } }); } return(menu); }
protected override UnityEditor.GenericMenu OnDragAndDropPortContextMenu(UnityEditor.GenericMenu menu, Port port) { if (macro == null) { return(menu); } if (port.IsInputPort()) { menu.AddItem(new GUIContent(string.Format("Promote to new Input '{0}'", port.name)), false, () => { var def = new DynamicPortDefinition(port.name, port.type); var defPort = macro.AddInputDefinition(def); BinderConnection.Create(defPort, port); }); } return(menu); }
///validates the entry and exit references protected override void OnGraphValidate() { base.OnGraphValidate(); _entry = null; _exit = null; _entry = entry; _exit = exit; //create initial example ports in case there are none in both entry and exit if (inputDefinitions.Count == 0 && outputDefinitions.Count == 0) { var defIn = new DynamicPortDefinition("In", typeof(Flow)); var defOut = new DynamicPortDefinition("Out", typeof(Flow)); var source = AddInputDefinition(defIn); var target = AddOutputDefinition(defOut); BinderConnection.Create(source, target); } }