示例#1
0
 private void RemoveSourceSocketPair(SwitchBackNode.SourceInfo source)
 {
     if (m_window == null)
     {
         return;
     }
     if (NodyWindow.CurrentGraph == null)
     {
         return;
     }
     if (NodyWindow.CurrentGraph.Id != Node.GraphId)
     {
         return;
     }
     if (Node.Sources == null)
     {
         return;
     }
     if (source == null)
     {
         return;
     }
     m_window.RemoveSocket(Node.GetSocketFromId(source.InputSocketId), true, false, true);
     m_window.RemoveSocket(Node.GetSocketFromId(source.OutputSocketId), false, false, true);
     Node.Sources.Remove(source);
     EditorUtility.SetDirty(Node);
     NodyWindow.CurrentGraph.SetDirty(false);
     AssetDatabase.Refresh();
     m_window.ConstructGraphGUI();
     m_window.RecalculateAllPointRects();
     NodeUpdated = true;
 }
示例#2
0
 private void RemoveSourceSocketPairAtIndex(int index)
 {
     if (Node.Sources == null)
     {
         return;
     }
     if (index < 0)
     {
         return;
     }
     if (index >= Node.Sources.Count)
     {
         return;
     }
     SwitchBackNode.SourceInfo source = Node.Sources[index];
     RemoveSourceSocketPair(source);
 }
示例#3
0
        private bool DrawSource(SwitchBackNode.SourceInfo source)
        {
            Color     color = GUI.color;
            bool      registeredAsReturnSocket = Node.ReturnSourceOutputSocketId == source.OutputSocketId;
            bool      removedSocket            = false;
            ColorName backgroundColorName      = registeredAsReturnSocket ? DGUI.Colors.ActionColorName : DGUI.Colors.DisabledBackgroundColorName;

            GUILayout.BeginHorizontal();
            {
                GUILayout.Space(DGUI.Properties.Space(6));

                DGUI.Line.Draw(false, backgroundColorName,
                               () =>
                {
                    if (registeredAsReturnSocket)
                    {
                        GUILayout.Space(DGUI.Properties.Space(2));
                        DGUI.Icon.Draw(Editor.Styles.GetStyle(Editor.Styles.StyleName.IconFaChevronRight), DGUI.Properties.SingleLineHeight * 0.6f, DGUI.Properties.SingleLineHeight, DGUI.Colors.ActionColorName);
                        DGUI.Icon.Draw(Editor.Styles.GetStyle(Editor.Styles.StyleName.IconFaChevronRight), DGUI.Properties.SingleLineHeight * 0.6f, DGUI.Properties.SingleLineHeight, DGUI.Colors.ActionColorName);
                        DGUI.Icon.Draw(Editor.Styles.GetStyle(Editor.Styles.StyleName.IconFaChevronRight), DGUI.Properties.SingleLineHeight * 0.6f, DGUI.Properties.SingleLineHeight, DGUI.Colors.ActionColorName);
                        GUILayout.Space(DGUI.Properties.Space());
                    }

//                                   DGUI.Label.Draw(UILabels.SourceName, Size.M, DGUI.Properties.SingleLineHeight, textColorName);
                    string sourceName = source.SourceName;
                    EditorGUI.BeginChangeCheck();
                    GUILayout.BeginVertical(GUILayout.Height(DGUI.Properties.SingleLineHeight - DGUI.Properties.Space()));
                    {
                        GUILayout.Space(0);
                        if (registeredAsReturnSocket)
                        {
                            GUI.color = DGUI.Colors.GetDColor(DGUI.Colors.ActionColorName).Light;
                        }
                        sourceName = EditorGUILayout.TextField(sourceName, GUILayout.ExpandWidth(true));
                        GUI.color  = color;
                    }
                    GUILayout.EndVertical();
                    if (EditorGUI.EndChangeCheck())
                    {
                        Undo.RecordObject(Node, "Rename Source Name");
                        source.SourceName = sourceName;
                        NodeUpdated       = true;
                    }

                    if (Node.Sources.Count > 2)
                    {
                        if (DGUI.Button.IconButton.Cancel(DGUI.Properties.SingleLineHeight))
                        {
                            Undo.RecordObject(Node, "Remove Source");
                            RemoveSourceSocketPair(source);
                            removedSocket = true;
                        }
                    }
                });
            }
            GUILayout.EndHorizontal();
            if (removedSocket)
            {
                return(true);
            }
            GUILayout.Space(DGUI.Properties.Space());
            GUILayout.BeginHorizontal();
            {
                GUILayout.Space(DGUI.Properties.Space(6));
                GUILayout.BeginVertical();
                {
                    Socket inputSocket = Node.GetSocketFromId(source.InputSocketId);
                    DrawSocketState(inputSocket);
                    if (DrawCurveModifier(Node, inputSocket, ShowCurveModifier))
                    {
                        NodeUpdated = true;
                    }
                }
                GUILayout.EndVertical();
            }
            GUILayout.EndHorizontal();
            GUILayout.Space(DGUI.Properties.Space());
            GUILayout.BeginHorizontal();
            {
                GUILayout.Space(DGUI.Properties.Space(6));
                GUILayout.BeginVertical();
                {
                    Socket outputSocket = Node.GetSocketFromId(source.OutputSocketId);
                    DrawSocketState(outputSocket);
                    if (DrawCurveModifier(Node, outputSocket, ShowCurveModifier))
                    {
                        NodeUpdated = true;
                    }
                }
                GUILayout.EndVertical();
            }
            GUILayout.EndHorizontal();
            GUILayout.Space(SourceVerticalSpacing);
            return(removedSocket);
        }