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; }
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); }
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); }