From 6d0ce544c9a222ada5bdd7cef81416371ea9f158 Mon Sep 17 00:00:00 2001 From: Thor Brigsted Date: Fri, 27 Jul 2018 14:30:59 +0200 Subject: [PATCH] Small formatting changes and comments --- Scripts/Editor/NodeEditorAction.cs | 2 +- Scripts/Editor/NodeEditorWindow.cs | 24 +++++++----------------- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/Scripts/Editor/NodeEditorAction.cs b/Scripts/Editor/NodeEditorAction.cs index a13d2d7..0ba2428 100644 --- a/Scripts/Editor/NodeEditorAction.cs +++ b/Scripts/Editor/NodeEditorAction.cs @@ -88,6 +88,7 @@ namespace XNodeEditor { node.position.y = (Mathf.Round((node.position.y + 8) / 16) * 16) - 8; } + // Offset portConnectionPoints instantly if a node is dragged so they aren't delayed by a frame. Vector2 offset = node.position - initial; if (offset.sqrMagnitude > 0){ foreach (XNode.NodePort output in node.Outputs){ @@ -103,7 +104,6 @@ namespace XNodeEditor { reroutePoints[index] += offset; } } - } foreach (XNode.NodePort input in node.Inputs) { diff --git a/Scripts/Editor/NodeEditorWindow.cs b/Scripts/Editor/NodeEditorWindow.cs index b9ea2a5..72fd4ce 100644 --- a/Scripts/Editor/NodeEditorWindow.cs +++ b/Scripts/Editor/NodeEditorWindow.cs @@ -10,16 +10,13 @@ namespace XNodeEditor { /// Stores node positions for all nodePorts. public Dictionary portConnectionPoints { get { return _portConnectionPoints; } } - private Dictionary _portConnectionPoints = new Dictionary(); + [SerializeField] private NodePortReference[] _references = new NodePortReference[0]; + [SerializeField] private Rect[] _rects = new Rect[0]; - [System.Serializable] - private class NodePortReference { - [SerializeField] - private XNode.Node _node; - [SerializeField] - private string _name; - + [System.Serializable] private class NodePortReference { + [SerializeField] private XNode.Node _node; + [SerializeField] private string _name; public NodePortReference(XNode.NodePort nodePort) { _node = nodePort.node; @@ -30,18 +27,12 @@ namespace XNodeEditor { if (_node == null) { return null; } - return _node.GetPort(_name); } - } - [SerializeField] - private NodePortReference[] _references = new NodePortReference[0]; - [SerializeField] - private Rect[] _rects = new Rect[0]; - private void OnDisable() { + // Cache portConnectionPoints before serialization starts int count = portConnectionPoints.Count; _references = new NodePortReference[count]; _rects = new Rect[count]; @@ -54,8 +45,8 @@ namespace XNodeEditor { } private void OnEnable() { + // Reload portConnectionPoints if there are any int length = _references.Length; - if (length == _rects.Length) { for (int i = 0; i < length; i++) { XNode.NodePort nodePort = _references[i].GetNodePort(); @@ -79,7 +70,6 @@ namespace XNodeEditor { if (graphEditor != null && NodeEditorPreferences.GetSettings().autoSave) AssetDatabase.SaveAssets(); } - //partial void OnEnable(); /// Create editor window public static NodeEditorWindow Init() { NodeEditorWindow w = CreateInstance();