Beispiel #1
0
        public static InstructionGraphNode CloneNode(InstructionGraphNode node)
        {
            var clone = Instantiate(node);

            clone.name      = node.name;
            clone.hideFlags = HideFlags.HideInHierarchy;
            return(clone);
        }
Beispiel #2
0
        public static void DestroyNode(InstructionGraph graph, InstructionGraphNode node, IList <InstructionGraphNode.ConnectionData> connections, InstructionGraphNode start)
        {
            foreach (var connection in connections)
            {
                ChangeConnectionTarget(graph, connection, null, connection.From == start);
            }

            using (new UndoScope(graph, true))
            {
                graph.Nodes.Remove(node);
                Undo.DestroyObjectImmediate(node);
                AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(graph));
            }
        }
        public static void Draw(Rect rect, GUIContent label, InstructionGraphNode target)
        {
            var editRect    = RectHelper.TakeTrailingIcon(ref rect);
            var targetLabel = target ? target.Name : "Unconnected";

            EditorGUI.LabelField(rect, label, new GUIContent(targetLabel));

            if (target)
            {
                if (GUI.Button(editRect, _editIcon.Content, GUIStyle.none))
                {
                    InstructionGraphEditor.SelectNode(target);
                }
            }
        }
Beispiel #4
0
 public override void SetConnection(ConnectionData connection, InstructionGraphNode target)
 {
     if (connection.Field == nameof(Items))
     {
         foreach (var item in Items)
         {
             if (item.Label == connection.FieldKey)
             {
                 item.OnSelected = target;
                 return;
             }
         }
     }
     else
     {
         base.SetConnection(connection, target);
     }
 }
        public static void Draw(GUIContent label, InstructionGraphNode target)
        {
            var rect = EditorGUILayout.GetControlRect(false);

            Draw(rect, label, target);
        }
Beispiel #6
0
 public static void SelectNode(InstructionGraphNode node)
 {
     Selection.activeObject = node;
 }