コード例 #1
0
 ///Adds a new output port definition to the Macro
 public bool AddOutputDefinition(MacroPortDefinition def)
 {
     if (outputDefinitions.Find(d => d.ID == def.ID) == null)
     {
         outputDefinitions.Add(def);
         return(true);
     }
     return(false);
 }
コード例 #2
0
 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 MacroPortDefinition(port.name, port.type);
             if (macro.AddInputDefinition(def))
             {
                 GatherPorts();
                 BinderConnection.Create(GetOutputPort(def.ID), port);
             }
         });
     }
     return(menu);
 }
コード例 #3
0
 ///validates the entry & exit references
 protected override void OnGraphValidate()
 {
     base.OnGraphValidate();
     _entry = null;
     _exit  = null;
     _entry = entry;
     _exit  = exit;
     //create initial ports in case there are none in both entry and exit
     if (inputDefinitions.Count == 0 && outputDefinitions.Count == 0)
     {
         var defIn  = new MacroPortDefinition("In", typeof(Flow));
         var defOut = new MacroPortDefinition("Out", typeof(Flow));
         inputDefinitions.Add(defIn);
         outputDefinitions.Add(defOut);
         entry.GatherPorts();
         exit.GatherPorts();
         var source = entry.GetOutputPort(defIn.ID);
         var target = exit.GetInputPort(defOut.ID);
         BinderConnection.Create(source, target);
     }
 }