blob: 24a8d6033ea39455d2eea188ae836563a3f25274 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
using UnityEditor;
using UnityEngine;
using XNode;
using XNode.Examples.LogicToy;
namespace XNodeEditor.Examples.LogicToy {
[CustomNodeEditor(typeof(LogicNode))]
public class LogicNodeEditor : NodeEditor {
private LogicNode node;
private LogicGraphEditor graphEditor;
public override void OnHeaderGUI() {
// Initialization
if (node == null) {
node = target as LogicNode;
graphEditor = NodeGraphEditor.GetEditor(target.graph, window) as LogicGraphEditor;
}
base.OnHeaderGUI();
Rect dotRect = GUILayoutUtility.GetLastRect();
dotRect.size = new Vector2(16, 16);
dotRect.y += 6;
GUI.color = graphEditor.GetLerpColor(Color.red, Color.green, node, node.led);
GUI.DrawTexture(dotRect, NodeEditorResources.dot);
GUI.color = Color.white;
}
public override void OnBodyGUI() {
if (target == null) {
Debug.LogWarning("Null target node for node editor!");
return;
}
NodePort input = target.GetPort("input");
NodePort output = target.GetPort("output");
GUILayout.BeginHorizontal();
if (input != null) NodeEditorGUILayout.PortField(GUIContent.none, input, GUILayout.MinWidth(0));
if (output != null) NodeEditorGUILayout.PortField(GUIContent.none, output, GUILayout.MinWidth(0));
GUILayout.EndHorizontal();
EditorGUIUtility.labelWidth = 60;
base.OnBodyGUI();
}
}
}
|