Fix edge.completed not getting run if node.action deletes (#3652)

This commit is contained in:
ShadowCommander
2021-03-13 04:59:19 -08:00
committed by GitHub
parent ab4b275247
commit c39f0fb721

View File

@@ -1,4 +1,4 @@
#nullable enable
#nullable enable
using System;
using System.Collections.Generic;
using System.IO;
@@ -357,6 +357,12 @@ namespace Content.Server.GameObjects.Components.Construction
Edge = null;
Node = GraphPrototype.Nodes[edge.Target];
foreach (var completed in edge.Completed)
{
await completed.PerformAction(Owner, user);
if (Owner.Deleted) return true;
}
// Perform node actions!
foreach (var action in Node.Actions)
{
@@ -369,12 +375,6 @@ namespace Content.Server.GameObjects.Components.Construction
if (Target == Node)
ClearTarget();
foreach (var completed in edge.Completed)
{
await completed.PerformAction(Owner, user);
if (Owner.Deleted) return true;
}
await HandleEntityChange(Node, user);
return true;