1
0
mirror of https://github.com/Siccity/xNode.git synced 2026-03-26 22:49:02 +08:00

Merge remote-tracking branch 'remotes/Siccity/master' into Cabin_Icarus

# Conflicts:
#	Scripts/Editor/NodeEditorWindow.cs
This commit is contained in:
Icarus 2019-12-23 23:34:19 +08:00
commit d35fba4851
4 changed files with 74 additions and 6 deletions

View File

@ -5,14 +5,22 @@ If you haven't already, join our [Discord channel](https://discord.gg/qgPrHv4)!
## Pull Requests ## Pull Requests
Try to keep your pull requests relevant, neat, and manageable. If you are adding multiple features, split them into separate PRs. Try to keep your pull requests relevant, neat, and manageable. If you are adding multiple features, split them into separate PRs.
* Avoid including irellevant whitespace or formatting changes. These are the main points to follow:
* Comment your code.
* Spell check your code / comments 1) Use formatting which is consistent with the rest of xNode base (see below)
* Use consistent formatting 2) Keep _one feature_ per PR (see below)
3) xNode aims to be compatible with C# 4.x, do not use new language features
4) Avoid including irellevant whitespace or formatting changes
5) Comment your code
6) Spell check your code / comments
7) Use concrete types, not *var*
8) Use english language
## New features ## New features
xNode aims to be simple and extendible, not trying to fix all of Unity's shortcomings. xNode aims to be simple and extendible, not trying to fix all of Unity's shortcomings.
Approved changes might be rejected if bundled with rejected changes, so keep PRs as separate as possible.
If your feature aims to cover something not related to editing nodes, it generally won't be accepted. If in doubt, ask on the Discord channel. If your feature aims to cover something not related to editing nodes, it generally won't be accepted. If in doubt, ask on the Discord channel.
## Coding conventions ## Coding conventions

View File

@ -0,0 +1,48 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using UnityEditor;
using UnityEngine;
namespace XNodeEditor {
/// <summary> Override graph inspector to show an 'Open Graph' button at the top </summary>
[CustomEditor(typeof(XNode.NodeGraph), true)]
public class GlobalGraphEditor : Editor {
public override void OnInspectorGUI() {
serializedObject.Update();
if (GUILayout.Button("Edit graph", GUILayout.Height(40))) {
NodeEditorWindow.Open(serializedObject.targetObject as XNode.NodeGraph);
}
GUILayout.Space(EditorGUIUtility.singleLineHeight);
GUILayout.Label("Raw data", "BoldLabel");
DrawDefaultInspector();
serializedObject.ApplyModifiedProperties();
}
}
[CustomEditor(typeof(XNode.Node), true)]
public class GlobalNodeEditor : Editor {
public override void OnInspectorGUI() {
serializedObject.Update();
if (GUILayout.Button("Edit graph", GUILayout.Height(40))) {
SerializedProperty graphProp = serializedObject.FindProperty("graph");
NodeEditorWindow w = NodeEditorWindow.Open(graphProp.objectReferenceValue as XNode.NodeGraph);
w.Home(); // Focus selected node
}
GUILayout.Space(EditorGUIUtility.singleLineHeight);
GUILayout.Label("Raw data", "BoldLabel");
// Now draw the node itself.
DrawDefaultInspector();
serializedObject.ApplyModifiedProperties();
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: bdd6e443125ccac4dad0665515759637
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -217,8 +217,8 @@ namespace XNodeEditor {
} }
/// <summary>Open the provided graph in the NodeEditor</summary> /// <summary>Open the provided graph in the NodeEditor</summary>
public static void Open(XNode.NodeGraph graph) { public static NodeEditorWindow Open(XNode.NodeGraph graph) {
if (!graph) return; if (!graph) return null;
var windows = Resources.FindObjectsOfTypeAll<NodeEditorWindow>(); var windows = Resources.FindObjectsOfTypeAll<NodeEditorWindow>();
NodeEditorWindow w = null; NodeEditorWindow w = null;
@ -248,6 +248,7 @@ namespace XNodeEditor {
w.graph = graph; w.graph = graph;
NodeGraphEditor graphEditor = NodeGraphEditor.GetEditor(graph, w); NodeGraphEditor graphEditor = NodeGraphEditor.GetEditor(graph, w);
NodeEditorWindow.current.graphEditor = graphEditor; NodeEditorWindow.current.graphEditor = graphEditor;
return w;
} }
/// <summary> Repaint all open NodeEditorWindows. </summary> /// <summary> Repaint all open NodeEditorWindows. </summary>