diff --git a/src/Artemis.Core/Models/Profile/DataBindings/DataBinding.cs b/src/Artemis.Core/Models/Profile/DataBindings/DataBinding.cs
index bfe24e220..2b67187f6 100644
--- a/src/Artemis.Core/Models/Profile/DataBindings/DataBinding.cs
+++ b/src/Artemis.Core/Models/Profile/DataBindings/DataBinding.cs
@@ -234,7 +234,7 @@ namespace Artemis.Core
Script.Save();
Entity.IsEnabled = IsEnabled;
- Entity.NodeScript = Script?.Entity;
+ Entity.NodeScript = Script.Entity.Nodes.Any() ? Script.Entity : null;
}
#endregion
diff --git a/src/Artemis.Core/VisualScripting/NodeScript.cs b/src/Artemis.Core/VisualScripting/NodeScript.cs
index 5c5b1188e..2f367bd7c 100644
--- a/src/Artemis.Core/VisualScripting/NodeScript.cs
+++ b/src/Artemis.Core/VisualScripting/NodeScript.cs
@@ -83,6 +83,9 @@ namespace Artemis.Core
{
_nodes.Remove(node);
+ if (node is IDisposable disposable)
+ disposable.Dispose();
+
NodeRemoved?.Invoke(this, node);
}
@@ -105,7 +108,9 @@ namespace Artemis.Core
///
public void Load()
{
- _nodes.Clear();
+ List removeNodes = _nodes.Where(n => !n.IsExitNode).ToList();
+ foreach (INode removeNode in removeNodes)
+ RemoveNode(removeNode);
// Create nodes
foreach (NodeEntity entityNode in Entity.Nodes)
@@ -113,7 +118,9 @@ namespace Artemis.Core
INode? node = LoadNode(entityNode, entityNode.IsExitNode ? ExitNode : null);
if (node == null)
continue;
- _nodes.Add(node);
+
+ if (!entityNode.IsExitNode)
+ AddNode(node);
}
LoadConnections();
diff --git a/src/Artemis.UI/Screens/ProfileEditor/Windows/NodeScriptWindowView.xaml b/src/Artemis.UI/Screens/ProfileEditor/Windows/NodeScriptWindowView.xaml
index ffa9fb687..d640e96b9 100644
--- a/src/Artemis.UI/Screens/ProfileEditor/Windows/NodeScriptWindowView.xaml
+++ b/src/Artemis.UI/Screens/ProfileEditor/Windows/NodeScriptWindowView.xaml
@@ -28,8 +28,9 @@
-
-
+
\ No newline at end of file
diff --git a/src/Artemis.UI/Screens/ProfileEditor/Windows/NodeScriptWindowViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/Windows/NodeScriptWindowViewModel.cs
index e0b6185dc..bf6358bb5 100644
--- a/src/Artemis.UI/Screens/ProfileEditor/Windows/NodeScriptWindowViewModel.cs
+++ b/src/Artemis.UI/Screens/ProfileEditor/Windows/NodeScriptWindowViewModel.cs
@@ -6,13 +6,15 @@ namespace Artemis.UI.Screens.ProfileEditor.Windows
{
public class NodeScriptWindowViewModel : Screen
{
- public NodeScriptWindowViewModel(NodeScript nodeScript, INodeService nodeService)
+ public NodeScriptWindowViewModel(NodeScript nodeScript, INodeService nodeService, ISettingsService settingsService)
{
NodeScript = nodeScript;
AvailableNodes = new BindableCollection(nodeService.AvailableNodes);
+ AlwaysShowValues = settingsService.GetSetting("ProfileEditor.AlwaysShowValues", true);
}
public NodeScript NodeScript { get; }
public BindableCollection AvailableNodes { get; }
+ public PluginSetting AlwaysShowValues { get; }
}
}