diff --git a/Scripts/Editor/NodeEditor.cs b/Scripts/Editor/NodeEditor.cs index 91d92d0..7652658 100644 --- a/Scripts/Editor/NodeEditor.cs +++ b/Scripts/Editor/NodeEditor.cs @@ -12,7 +12,7 @@ namespace XNodeEditor { /// Fires every whenever a node was modified through the editor public static Action onUpdateNode; - public static Dictionary portPositions; + public readonly static Dictionary portPositions = new Dictionary(); public virtual void OnHeaderGUI() { GUILayout.Label(target.name, NodeEditorResources.styles.nodeHeader, GUILayout.Height(30)); @@ -25,7 +25,6 @@ namespace XNodeEditor { // serializedObject.ApplyModifiedProperties(); goes at the end. serializedObject.Update(); string[] excludes = { "m_Script", "graph", "position", "ports" }; - portPositions = new Dictionary(); // Iterate through serialized properties and draw them like the Inspector (But with ports) SerializedProperty iterator = serializedObject.GetIterator(); diff --git a/Scripts/Editor/NodeEditorGUI.cs b/Scripts/Editor/NodeEditorGUI.cs index c773571..c9c460f 100644 --- a/Scripts/Editor/NodeEditorGUI.cs +++ b/Scripts/Editor/NodeEditorGUI.cs @@ -301,7 +301,7 @@ namespace XNodeEditor { NodeEditor nodeEditor = NodeEditor.GetEditor(node, this); - NodeEditor.portPositions = new Dictionary(); + NodeEditor.portPositions.Clear(); //Get node position Vector2 nodePos = GridToWindowPositionNoClipped(node.position); @@ -351,8 +351,7 @@ namespace XNodeEditor { Vector2 portHandlePos = kvp.Value; portHandlePos += node.position; Rect rect = new Rect(portHandlePos.x - 8, portHandlePos.y - 8, 16, 16); - if (portConnectionPoints.ContainsKey(kvp.Key)) portConnectionPoints[kvp.Key] = rect; - else portConnectionPoints.Add(kvp.Key, rect); + portConnectionPoints[kvp.Key] = rect; } } diff --git a/Scripts/Editor/NodeEditorGUILayout.cs b/Scripts/Editor/NodeEditorGUILayout.cs index 1826107..344b3fb 100644 --- a/Scripts/Editor/NodeEditorGUILayout.cs +++ b/Scripts/Editor/NodeEditorGUILayout.cs @@ -147,8 +147,7 @@ namespace XNodeEditor { // Register the handle position Vector2 portPos = rect.center; - if (NodeEditor.portPositions.ContainsKey(port)) NodeEditor.portPositions[port] = portPos; - else NodeEditor.portPositions.Add(port, portPos); + NodeEditor.portPositions[port] = portPos; } } @@ -204,8 +203,7 @@ namespace XNodeEditor { // Register the handle position Vector2 portPos = rect.center; - if (NodeEditor.portPositions.ContainsKey(port)) NodeEditor.portPositions[port] = portPos; - else NodeEditor.portPositions.Add(port, portPos); + NodeEditor.portPositions[port] = portPos; } /// Add a port field to previous layout element. @@ -233,8 +231,7 @@ namespace XNodeEditor { // Register the handle position Vector2 portPos = rect.center; - if (NodeEditor.portPositions.ContainsKey(port)) NodeEditor.portPositions[port] = portPos; - else NodeEditor.portPositions.Add(port, portPos); + NodeEditor.portPositions[port] = portPos; } /// Draws an input and an output port on the same line