diff --git a/src/Artemis.Core/VisualScripting/Interfaces/INode.cs b/src/Artemis.Core/VisualScripting/Interfaces/INode.cs
index 06c382749..15d21588c 100644
--- a/src/Artemis.Core/VisualScripting/Interfaces/INode.cs
+++ b/src/Artemis.Core/VisualScripting/Interfaces/INode.cs
@@ -39,6 +39,11 @@ public interface INode : INotifyPropertyChanged, IBreakableModel, IPluginFeature
/// Gets a boolean indicating whether the node is a default node that connot be removed
///
bool IsDefaultNode { get; }
+
+ ///
+ /// Gets a boolean indicating whether the node is currently loading, use this to disable pin type changes etc.
+ ///
+ bool IsLoading { get; set; }
///
/// Gets or sets the X-position of the node
diff --git a/src/Artemis.Core/VisualScripting/NodeData.cs b/src/Artemis.Core/VisualScripting/NodeData.cs
index dff2a5a2d..133414e9b 100644
--- a/src/Artemis.Core/VisualScripting/NodeData.cs
+++ b/src/Artemis.Core/VisualScripting/NodeData.cs
@@ -46,6 +46,7 @@ public class NodeData
if (entity != null)
{
+ node.IsLoading = true;
node.X = entity.X;
node.Y = entity.Y;
try
diff --git a/src/Artemis.Core/VisualScripting/NodeScript.cs b/src/Artemis.Core/VisualScripting/NodeScript.cs
index 8f281f6c3..edf08cdb0 100644
--- a/src/Artemis.Core/VisualScripting/NodeScript.cs
+++ b/src/Artemis.Core/VisualScripting/NodeScript.cs
@@ -206,6 +206,8 @@ public abstract class NodeScript : CorePropertyChanged, INodeScript
}
LoadConnections();
+ foreach (INode node in Nodes)
+ node.IsLoading = false;
}
internal void LoadFromEntity(NodeScriptEntity entity)
@@ -216,6 +218,7 @@ public abstract class NodeScript : CorePropertyChanged, INodeScript
private void LoadExistingNode(INode node, NodeEntity nodeEntity)
{
+ node.IsLoading = true;
node.Id = nodeEntity.Id;
node.X = nodeEntity.X;
node.Y = nodeEntity.Y;
diff --git a/src/Artemis.Core/VisualScripting/Nodes/Node.cs b/src/Artemis.Core/VisualScripting/Nodes/Node.cs
index b3c4ad3ee..97254c03d 100644
--- a/src/Artemis.Core/VisualScripting/Nodes/Node.cs
+++ b/src/Artemis.Core/VisualScripting/Nodes/Node.cs
@@ -92,6 +92,9 @@ public abstract class Node : BreakableModel, INode
///
public virtual bool IsDefaultNode => false;
+ ///
+ public bool IsLoading { get; set; }
+
private readonly List _pins = new();
///