///Adds a new input port definition to the Macro public Port AddInputDefinition(DynamicParameterDefinition def) { if (inputDefinitions.Find(d => d.ID == def.ID) == null) { inputDefinitions.Add(def); entry.GatherPorts(); return(entry.GetOutputPort(def.ID)); } return(null); }
//create initial example ports in case there are none in both entry and exit public void AddExamplePorts() { if (inputDefinitions.Count == 0 && outputDefinitions.Count == 0) { var defIn = new DynamicParameterDefinition("In", typeof(Flow)); var defOut = new DynamicParameterDefinition("Out", typeof(Flow)); var source = AddInputDefinition(defIn); var target = AddOutputDefinition(defOut); BinderConnection.Create(source, target); Validate(); } }
protected override UnityEditor.GenericMenu OnDragAndDropPortContextMenu(UnityEditor.GenericMenu menu, Port port) { if (macro == null) { return(menu); } if (port.IsOutputPort()) { menu.AddItem(new GUIContent(string.Format("Promote to new Output '{0}'", port.name)), false, () => { var def = new DynamicParameterDefinition(port.name, port.type); var defPort = macro.AddOutputDefinition(def); BinderConnection.Create(port, defPort); }); } return(menu); }
//... public void AddParameter(string name, System.Type type) { var param = new DynamicParameterDefinition(name, type); _parameters.Add(param); }