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:
commit
d35fba4851
@ -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
|
||||||
|
|||||||
48
Scripts/Editor/GraphAndNodeEditor.cs
Normal file
48
Scripts/Editor/GraphAndNodeEditor.cs
Normal 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Scripts/Editor/GraphAndNodeEditor.cs.meta
Normal file
11
Scripts/Editor/GraphAndNodeEditor.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bdd6e443125ccac4dad0665515759637
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -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>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user