private static void HandleInsertPoint(Event guiEvent) { if (guiEvent.type == EventType.KeyDown && guiEvent.keyCode == KeyCode.I && guiEvent.shift && curcuitEditor.SelectedSegment != new Vector2Int(-1, -1)) { curcuitEditor.InsertPoint(); } }
private static void ShowPath(int index) { Path pathToShow = curcuitEditor.TargetCurcuit[index]; bool isSelected = curcuitEditor.SelectedPath == pathToShow; GUIStyle foldoutStyle = new GUIStyle(EditorStyles.foldout); if (isSelected) { foldoutStyle.fontStyle = FontStyle.Bold; foldoutStyle.normal.textColor = curcuitEditor.SelectedPathInspectorColor; foldoutStyle.onNormal.textColor = curcuitEditor.SelectedPathInspectorColor; } GUILayout.BeginHorizontal(); pathToShow.isExpanded = EditorGUILayout.Foldout(pathToShow.isExpanded, $"Path {index}", true, foldoutStyle); if (GUILayout.Button("X", new GUIStyle(EditorStyles.miniButton) { }, GUILayout.Height(20f), GUILayout.Width(20f))) { curcuitEditor.RemovePath(index); return; } GUILayout.EndHorizontal(); if (pathToShow.isExpanded) { EditorGUI.indentLevel += 1; pathToShow.IsCyclic = EditorGUILayout.Toggle( "Is path cyclic: ", pathToShow.IsCyclic); EditorGUILayout.Space(); ShowPoints(pathToShow); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Add new point", GUILayout.Height(25f), GUILayout.Width(200f))) { curcuitEditor.AddPointInOrigin(index); return; } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUI.BeginDisabledGroup(curcuitEditor.SelectedSegment == new Vector2Int(-1, -1)); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Insert point into selected curve", GUILayout.Height(25f), GUILayout.Width(200f))) { curcuitEditor.InsertPoint(); return; } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUI.EndDisabledGroup(); EditorGUI.indentLevel -= 1; } }