Beispiel #1
0
 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();
     }
 }
Beispiel #2
0
        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;
            }
        }