private static void FillAddNodes(NodeEditorInputInfo inputInfo, NodeEditorFramework.Utilities.GenericMenu canvasContextMenu) { // Fill context menu with nodes to add to the canvas NodeEditorState state = inputInfo.editorState; List <string> nodes = NodeTypes.getCompatibleNodes(state.connectKnob); foreach (string node in nodes) { // Only add nodes to the context menu that are compatible if (NodeCanvasManager.CheckCanvasCompability(node, inputInfo.editorState.canvas.GetType()) && inputInfo.editorState.canvas.CanAddNode(node)) { canvasContextMenu.AddItem(new GUIContent("Add " + NodeTypes.getNodeData(node).adress), false, CreateNodeCallback, new NodeEditorInputInfo(node, state)); } } }
public void DrawToolbarGUI() { GUILayout.BeginHorizontal(GUI.skin.GetStyle("toolbar")); if (GUILayout.Button("File", GUI.skin.GetStyle("toolbarDropdown"), GUILayout.Width(50))) { GenericMenu menu = new GenericMenu(NodeEditorGUI.useUnityEditorToolbar && !Application.isPlaying); // New Canvas filled with canvas types NodeCanvasManager.FillCanvasTypeMenu(ref menu, NewNodeCanvas, "New Canvas/"); menu.AddSeparator(""); // Load / Save #if UNITY_EDITOR menu.AddItem(new GUIContent("Load Canvas"), false, LoadCanvas); menu.AddItem(new GUIContent("Reload Canvas"), false, ReloadCanvas); if (canvasCache.nodeCanvas.allowSceneSaveOnly) { menu.AddDisabledItem(new GUIContent("Save Canvas")); menu.AddDisabledItem(new GUIContent("Save Canvas As")); } else { menu.AddItem(new GUIContent("Save Canvas"), false, SaveCanvas); menu.AddItem(new GUIContent("Save Canvas As"), false, SaveCanvasAs); } menu.AddSeparator(""); // Scene Saving string[] sceneSaves = NodeEditorSaveManager.GetSceneSaves(); if (sceneSaves.Length <= 0) // Display disabled item { menu.AddItem(new GUIContent("Load Canvas from Scene"), false, null); } else { foreach (string sceneSave in sceneSaves) // Display scene saves to load { menu.AddItem(new GUIContent("Load Canvas from Scene/" + sceneSave), false, LoadSceneCanvasCallback, sceneSave); } } menu.AddItem(new GUIContent("Save Canvas to Scene"), false, SaveSceneCanvasCallback); menu.Show(new Vector2(3, toolbarHeight + 3)); #endif // Import / Export filled with import/export types ImportExportManager.FillImportFormatMenu(ref menu, ImportCanvasCallback, "Import/"); if (canvasCache.nodeCanvas.allowSceneSaveOnly) { menu.AddDisabledItem(new GUIContent("Export")); } else { ImportExportManager.FillExportFormatMenu(ref menu, ExportCanvasCallback, "Export/"); } menu.AddSeparator(""); // Show dropdown menu.Show(new Vector2(3, toolbarHeight + 3)); } GUILayout.Space(10); GUILayout.FlexibleSpace(); GUILayout.Label(new GUIContent(canvasCache.nodeCanvas.saveName, "Save Type: " + (canvasCache.nodeCanvas.livesInScene ? "Scene" : "Asset") + "\n" + "Save Path: " + canvasCache.nodeCanvas.savePath), GUI.skin.GetStyle("toolbarLabel")); GUILayout.Label(new GUIContent(canvasCache.typeData.DisplayString, "Canvas Type: " + canvasCache.typeData.DisplayString), GUI.skin.GetStyle("toolbarLabel")); GUI.backgroundColor = new Color(1, 0.3f, 0.3f, 1); /*if (GUILayout.Button("Reinit", GUI.skin.GetStyle("toolbarButton"), GUILayout.Width(100))) * { * NodeEditor.ReInit(true); * NodeEditorGUI.CreateDefaultSkin(); * canvasCache.nodeCanvas.Validate(); * }*/ if (Application.isPlaying) { GUILayout.Space(5); if (GUILayout.Button("Quit", GUI.skin.GetStyle("toolbarButton"), GUILayout.Width(100))) { Application.Quit(); } } GUI.backgroundColor = Color.white; GUILayout.EndHorizontal(); if (Event.current.type == EventType.Repaint) { toolbarHeight = GUILayoutUtility.GetLastRect().yMax; } }
public void DrawToolbarGUI(Rect rect) { rect.height = toolbarHeight; GUILayout.BeginArea(rect, NodeEditorGUI.toolbar); GUILayout.BeginHorizontal(); float curToolbarHeight = 0; if (GUILayout.Button("File", NodeEditorGUI.toolbarDropdown, GUILayout.Width(50))) { GenericMenu menu = new GenericMenu(!Application.isPlaying); // New Canvas filled with canvas types NodeCanvasManager.FillCanvasTypeMenu(ref menu, NewNodeCanvas, "New Canvas/"); menu.AddSeparator(""); // Load / Save #if UNITY_EDITOR menu.AddItem(new GUIContent("Load Canvas"), false, LoadCanvas); menu.AddItem(new GUIContent("Reload Canvas"), false, ReloadCanvas); menu.AddSeparator(""); if (canvasCache.nodeCanvas.allowSceneSaveOnly) { menu.AddDisabledItem(new GUIContent("Save Canvas")); menu.AddDisabledItem(new GUIContent("Save Canvas As")); } else { menu.AddItem(new GUIContent("Save Canvas"), false, SaveCanvas); menu.AddItem(new GUIContent("Save Canvas As"), false, SaveCanvasAs); } menu.AddSeparator(""); #endif // Import / Export filled with import/export types ImportExportManager.FillImportFormatMenu(ref menu, ImportCanvasCallback, "Import/"); if (canvasCache.nodeCanvas.allowSceneSaveOnly) { menu.AddDisabledItem(new GUIContent("Export")); } else { ImportExportManager.FillExportFormatMenu(ref menu, ExportCanvasCallback, "Export/"); } menu.AddSeparator(""); // Scene Saving string[] sceneSaves = NodeEditorSaveManager.GetSceneSaves(); if (sceneSaves.Length <= 0) // Display disabled item { menu.AddItem(new GUIContent("Load Canvas from Scene"), false, null); } else { foreach (string sceneSave in sceneSaves) // Display scene saves to load { menu.AddItem(new GUIContent("Load Canvas from Scene/" + sceneSave), false, LoadSceneCanvasCallback, sceneSave); } } menu.AddItem(new GUIContent("Save Canvas to Scene"), false, SaveSceneCanvasCallback); // Show dropdown menu.Show(new Vector2(5, toolbarHeight)); } curToolbarHeight = Mathf.Max(curToolbarHeight, GUILayoutUtility.GetLastRect().yMax); GUILayout.Space(10); GUILayout.FlexibleSpace(); GUILayout.Label(new GUIContent("" + canvasCache.nodeCanvas.saveName + " (" + (canvasCache.nodeCanvas.livesInScene ? "Scene Save" : "Asset Save") + ")", "Opened Canvas path: " + canvasCache.nodeCanvas.savePath), NodeEditorGUI.toolbarLabel); GUILayout.Label("Type: " + canvasCache.typeData.DisplayString, NodeEditorGUI.toolbarLabel); curToolbarHeight = Mathf.Max(curToolbarHeight, GUILayoutUtility.GetLastRect().yMax); GUI.backgroundColor = new Color(1, 0.3f, 0.3f, 1); if (GUILayout.Button("Force Re-init", NodeEditorGUI.toolbarButton, GUILayout.Width(100))) { NodeEditor.ReInit(true); canvasCache.nodeCanvas.Validate(); } #if !UNITY_EDITOR GUILayout.Space(5); if (GUILayout.Button("Quit", NodeEditorGUI.toolbarButton, GUILayout.Width(100))) { Application.Quit(); } #endif curToolbarHeight = Mathf.Max(curToolbarHeight, GUILayoutUtility.GetLastRect().yMax); GUI.backgroundColor = Color.white; GUILayout.EndHorizontal(); GUILayout.EndArea(); if (Event.current.type == EventType.Repaint) { toolbarHeight = curToolbarHeight; } }
public void DrawToolbarGUI(Rect rect) { rect.height = toolbarHeight; GUILayout.BeginArea(rect, NodeEditorGUI.toolbar); GUILayout.BeginHorizontal(); float curToolbarHeight = 0; if (GUILayout.Button("File", NodeEditorGUI.toolbarDropdown, GUILayout.Width(50))) { GenericMenu menu = new GenericMenu(); // New Canvas filled with canvas types NodeCanvasManager.FillCanvasTypeMenu(ref menu, NewNodeCanvas, "New Canvas/"); menu.AddSeparator(""); // Load / Save #if UNITY_EDITOR menu.AddItem(new GUIContent("Load Canvas"), false, LoadCanvas); menu.AddItem(new GUIContent("Reload Canvas"), false, ReloadCanvas); menu.AddSeparator(""); menu.AddItem(new GUIContent("Save Canvas"), false, SaveCanvas); menu.AddItem(new GUIContent("Save Canvas As"), false, SaveCanvasAs); // menu.AddSeparator(""); #endif menu.Show(new Vector2(5, toolbarHeight)); } curToolbarHeight = Mathf.Max(curToolbarHeight, GUILayoutUtility.GetLastRect().yMax); GUILayout.Space(10); GUILayout.FlexibleSpace(); GUILayout.Label(new GUIContent(this.canvasCache.openedCanvasPath), NodeEditorGUI.toolbarLabel); GUILayout.Label(this.canvasCache.typeData.DisplayString, NodeEditorGUI.toolbarLabel); curToolbarHeight = Mathf.Max(curToolbarHeight, GUILayoutUtility.GetLastRect().yMax); GUI.backgroundColor = new Color(1, 0.3f, 0.3f, 1); if (NodeEditor.curNodeCanvas is NPBehaveCanvas) { if (GUILayout.Button("DataBase", NodeEditorGUI.toolbarButton, GUILayout.Width(100))) { NPBehaveCanvas npBehaveCanvas = this.canvasCache.nodeCanvas as NPBehaveCanvas; UnityEditor.Selection.activeObject = npBehaveCanvas.GetCurrentCanvasDatas(); } } #if !UNITY_EDITOR GUILayout.Space(5); if (GUILayout.Button("Quit", NodeEditorGUI.toolbarButton, GUILayout.Width(100))) { Application.Quit(); } #endif curToolbarHeight = Mathf.Max(curToolbarHeight, GUILayoutUtility.GetLastRect().yMax); GUI.backgroundColor = Color.white; GUILayout.EndHorizontal(); GUILayout.EndArea(); if (Event.current.type == EventType.Repaint) { toolbarHeight = curToolbarHeight; } }