diff --git a/Scripts/Node.cs b/Scripts/Node.cs
index bf7f32e..0ce098f 100644
--- a/Scripts/Node.cs
+++ b/Scripts/Node.cs
@@ -62,8 +62,8 @@ namespace XNode {
protected void OnEnable() {
UpdateStaticPorts();
- Init();
- if (graph != null && !graph.CopyInProgress) {
+
+ if (graph != null && !graph.copyInProgress) {
OnEnableOverride();
}
}
@@ -80,11 +80,12 @@ namespace XNode {
///
/// Initialize node. Called on creation and after clone in the correct order.
///
- // Implementation note: This method is called after a node has been instantiated, and also
- // called directly when cloning a full graph. This simply calls Init(), which cannot be
- // called from outside, as it is protected, not public, and making it public would break
- // existing code.
public virtual void OnEnableOverride() {
+ // Implementation note: This method is called after a node has been instantiated, and also
+ // called directly when cloning a full graph. This simply calls Init(), which cannot be
+ // called from outside, as it is protected, not public, and making it public would break
+ // existing code.
+
Init();
}
diff --git a/Scripts/NodeGraph.cs b/Scripts/NodeGraph.cs
index fd3dfdb..65b6212 100644
--- a/Scripts/NodeGraph.cs
+++ b/Scripts/NodeGraph.cs
@@ -11,10 +11,12 @@ namespace XNode {
/// See:
[SerializeField] public List nodes = new List();
- // Non serialized flag to indicate a copy operation is currently underway.
- // This stops nodes from calling OnEnableOverride before we updated the
- // graph reference.
- public bool CopyInProgress { get; protected set; }
+ ///
+ /// Non serialized flag to indicate a copy operation is currently underway.
+ /// This stops nodes from calling OnEnableOverride before we updated the
+ /// graph reference.
+ ///
+ public bool copyInProgress { get; protected set; }
/// Add a node to the graph by type
public T AddNode() where T : Node {
@@ -32,18 +34,14 @@ namespace XNode {
/// Creates a copy of the original node in the graph
public virtual Node CopyNode(Node original) {
- this.CopyInProgress = true;
- try {
- Node node = ScriptableObject.Instantiate(original);
- node.ClearConnections();
- nodes.Add(node);
- node.graph = this;
- node.OnEnableOverride();
- return node;
- }
- finally {
- this.CopyInProgress = false;
- }
+ this.copyInProgress = true;
+ Node node = ScriptableObject.Instantiate(original);
+ node.ClearConnections();
+ nodes.Add(node);
+ node.graph = this;
+ node.OnEnableOverride();
+ this.copyInProgress = false;
+ return node;
}
/// Safely remove a node and all its connections
@@ -68,36 +66,35 @@ namespace XNode {
public XNode.NodeGraph Copy() {
// Instantiate a new nodegraph instance
NodeGraph graph = Instantiate(this);
- graph.CopyInProgress = true;
- try {
- // Instantiate all nodes inside the graph
- for (int i = 0; i < nodes.Count; i++) {
- if (nodes[i] == null) continue;
- Node node = Instantiate(nodes[i]) as Node;
- node.graph = graph;
- graph.nodes[i] = node;
- }
+ graph.copyInProgress = true;
- // Redirect all connections
- for (int i = 0; i < graph.nodes.Count; i++) {
- if (graph.nodes[i] == null) continue;
- foreach (NodePort port in graph.nodes[i].Ports) {
- port.Redirect(nodes, graph.nodes);
- }
- }
-
- // Call the Enable notifier, which was not fired during the
- // normal instantiation.
- for (int i = 0; i < graph.nodes.Count; i++) {
- var node = graph.nodes[i];
- if (node == null) continue;
- node.OnEnableOverride();
+ // Instantiate all nodes inside the graph
+ for (int i = 0; i < nodes.Count; i++) {
+ if (nodes[i] == null) continue;
+ Node node = Instantiate(nodes[i]) as Node;
+ node.graph = graph;
+ graph.nodes[i] = node;
+ }
+
+ // Redirect all connections
+ for (int i = 0; i < graph.nodes.Count; i++) {
+ if (graph.nodes[i] == null) continue;
+ foreach (NodePort port in graph.nodes[i].Ports) {
+ port.Redirect(nodes, graph.nodes);
}
}
- finally {
- graph.CopyInProgress = false;
+
+ // Call the Enable notifier, which was not fired during the
+ // normal instantiation.
+ for (int i = 0; i < graph.nodes.Count; i++) {
+ var node = graph.nodes[i];
+ if (node == null) continue;
+ node.OnEnableOverride();
}
+ graph.copyInProgress = false;
+
+
return graph;
}