Nodes - Ensure there always is an exit node

This commit is contained in:
Robert committed 2021-08-26 23:37:31 +02:00
1 parent c4340c3c97
commit 3e201336f1
4 files changed
+16 -6

No files matched your search

@@ -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
@@ -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
/// <inheritdoc />
public void Load()
{
_nodes.Clear();
List<INode> 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();