mirror of
https://github.com/Siccity/xNode.git
synced 2025-12-20 09:16:01 +08:00
Moved NodeEditor.[CustomNodeEditor].contextMenuName to Node.[CreateNodeMenu].menuName
This commit is contained in:
parent
b70ba44c23
commit
90c3621795
@ -4,7 +4,7 @@ using UnityEditor;
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace BasicNodes {
|
namespace BasicNodes {
|
||||||
[CustomNodeEditor(typeof(DisplayValue), "BasicNodes/DisplayValue")]
|
[CustomNodeEditor(typeof(DisplayValue))]
|
||||||
public class DisplayValueEditor : NodeEditor {
|
public class DisplayValueEditor : NodeEditor {
|
||||||
|
|
||||||
protected override void OnBodyGUI() {
|
protected override void OnBodyGUI() {
|
||||||
|
|||||||
@ -50,13 +50,10 @@ public class NodeEditor {
|
|||||||
public class CustomNodeEditorAttribute : Attribute {
|
public class CustomNodeEditorAttribute : Attribute {
|
||||||
public Type inspectedType { get { return _inspectedType; } }
|
public Type inspectedType { get { return _inspectedType; } }
|
||||||
private Type _inspectedType;
|
private Type _inspectedType;
|
||||||
public string contextMenuName { get { return _contextMenuName; } }
|
|
||||||
private string _contextMenuName;
|
|
||||||
/// <summary> Tells a NodeEditor which Node type it is an editor for </summary>
|
/// <summary> Tells a NodeEditor which Node type it is an editor for </summary>
|
||||||
/// <param name="inspectedType">Type that this editor can edit</param>
|
/// <param name="inspectedType">Type that this editor can edit</param>
|
||||||
/// <param name="contextMenuName">Path to the node</param>
|
/// <param name="contextMenuName">Path to the node</param>
|
||||||
public CustomNodeEditorAttribute(Type inspectedType, string contextMenuName) {
|
public CustomNodeEditorAttribute(Type inspectedType) {
|
||||||
_inspectedType = inspectedType;
|
_inspectedType = inspectedType;
|
||||||
_contextMenuName = contextMenuName;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -81,12 +81,11 @@ public partial class NodeEditorWindow {
|
|||||||
} else {
|
} else {
|
||||||
for (int i = 0; i < nodeTypes.Length; i++) {
|
for (int i = 0; i < nodeTypes.Length; i++) {
|
||||||
Type type = nodeTypes[i];
|
Type type = nodeTypes[i];
|
||||||
Type editorType = GetNodeEditor(type).GetType();
|
|
||||||
|
|
||||||
string name = nodeTypes[i].ToString().Replace('.', '/');
|
string name = nodeTypes[i].ToString().Replace('.', '/');
|
||||||
CustomNodeEditorAttribute attrib;
|
Node.CreateNodeMenuAttribute attrib;
|
||||||
if (NodeEditorUtilities.GetAttrib(editorType, out attrib)) {
|
if (NodeEditorUtilities.GetAttrib(type, out attrib)) {
|
||||||
name = attrib.contextMenuName;
|
name = attrib.menuName;
|
||||||
}
|
}
|
||||||
contextMenu.AddItem(new GUIContent(name), false, () => {
|
contextMenu.AddItem(new GUIContent(name), false, () => {
|
||||||
CreateNode(type, pos);
|
CreateNode(type, pos);
|
||||||
|
|||||||
@ -163,6 +163,16 @@ public abstract class Node : ScriptableObject {
|
|||||||
public OutputAttribute() { }
|
public OutputAttribute() { }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
|
||||||
|
public class CreateNodeMenuAttribute : Attribute {
|
||||||
|
public string menuName;
|
||||||
|
/// <summary> Manually supply node class with a context menu path </summary>
|
||||||
|
/// <param name="menuName"> Path to this node in the context menu </param>
|
||||||
|
public CreateNodeMenuAttribute(string menuName) {
|
||||||
|
this.menuName = menuName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Serializable] private class NodePortDictionary : Dictionary<string, NodePort>, ISerializationCallbackReceiver {
|
[Serializable] private class NodePortDictionary : Dictionary<string, NodePort>, ISerializationCallbackReceiver {
|
||||||
[SerializeField] private List<string> keys = new List<string>();
|
[SerializeField] private List<string> keys = new List<string>();
|
||||||
[SerializeField] private List<NodePort> values = new List<NodePort>();
|
[SerializeField] private List<NodePort> values = new List<NodePort>();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user