Account for graph actions being able to delete the entity in ChangeNode.
Fixes an exception that occurs if a node action deletes a construction.
This commit is contained in:
@@ -140,6 +140,10 @@ namespace Content.Server.Construction
|
|||||||
if(performActions)
|
if(performActions)
|
||||||
PerformActions(uid, userUid, node.Actions);
|
PerformActions(uid, userUid, node.Actions);
|
||||||
|
|
||||||
|
// An action might have deleted the entity... Account for this.
|
||||||
|
if (!Exists(uid))
|
||||||
|
return false;
|
||||||
|
|
||||||
// ChangeEntity will handle the pathfinding update.
|
// ChangeEntity will handle the pathfinding update.
|
||||||
if (node.Entity is {} newEntity && ChangeEntity(uid, userUid, newEntity, construction) != null)
|
if (node.Entity is {} newEntity && ChangeEntity(uid, userUid, newEntity, construction) != null)
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -403,7 +403,7 @@ namespace Content.Server.Construction
|
|||||||
foreach (var action in actions)
|
foreach (var action in actions)
|
||||||
{
|
{
|
||||||
// If an action deletes the entity, we stop performing actions.
|
// If an action deletes the entity, we stop performing actions.
|
||||||
if (!EntityManager.EntityExists(uid))
|
if (!Exists(uid))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
action.PerformAction(uid, userUid, EntityManager);
|
action.PerformAction(uid, userUid, EntityManager);
|
||||||
|
|||||||
Reference in New Issue
Block a user