Fix edge.completed not getting run if node.action deletes (#3652)
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
#nullable enable
|
#nullable enable
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
@@ -357,6 +357,12 @@ namespace Content.Server.GameObjects.Components.Construction
|
|||||||
Edge = null;
|
Edge = null;
|
||||||
Node = GraphPrototype.Nodes[edge.Target];
|
Node = GraphPrototype.Nodes[edge.Target];
|
||||||
|
|
||||||
|
foreach (var completed in edge.Completed)
|
||||||
|
{
|
||||||
|
await completed.PerformAction(Owner, user);
|
||||||
|
if (Owner.Deleted) return true;
|
||||||
|
}
|
||||||
|
|
||||||
// Perform node actions!
|
// Perform node actions!
|
||||||
foreach (var action in Node.Actions)
|
foreach (var action in Node.Actions)
|
||||||
{
|
{
|
||||||
@@ -369,12 +375,6 @@ namespace Content.Server.GameObjects.Components.Construction
|
|||||||
if (Target == Node)
|
if (Target == Node)
|
||||||
ClearTarget();
|
ClearTarget();
|
||||||
|
|
||||||
foreach (var completed in edge.Completed)
|
|
||||||
{
|
|
||||||
await completed.PerformAction(Owner, user);
|
|
||||||
if (Owner.Deleted) return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
await HandleEntityChange(Node, user);
|
await HandleEntityChange(Node, user);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user