From 31d1d3b6e792d6edc6550211ad71fc78ddbe898c Mon Sep 17 00:00:00 2001 From: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Date: Sat, 15 Jun 2024 09:19:23 -0400 Subject: [PATCH] fix borgs getting deleted by salvage magnets (#29006) --- Content.Server/Salvage/SalvageSystem.Magnet.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Content.Server/Salvage/SalvageSystem.Magnet.cs b/Content.Server/Salvage/SalvageSystem.Magnet.cs index 4b7291298b..3fe4baca8b 100644 --- a/Content.Server/Salvage/SalvageSystem.Magnet.cs +++ b/Content.Server/Salvage/SalvageSystem.Magnet.cs @@ -130,17 +130,20 @@ public sealed partial class SalvageSystem } // Uhh yeah don't delete mobs or whatever - var mobQuery = AllEntityQuery(); + var mobQuery = AllEntityQuery(); _detachEnts.Clear(); - while (mobQuery.MoveNext(out var mobUid, out _, out _, out var xform)) + while (mobQuery.MoveNext(out var mobUid, out _, out var xform)) { if (xform.GridUid == null || !data.Comp.ActiveEntities.Contains(xform.GridUid.Value) || xform.MapUid == null) continue; + if (_salvMobQuery.HasComp(mobUid)) + continue; + // Can't parent directly to map as it runs grid traversal. _detachEnts.Add(((mobUid, xform), xform.MapUid.Value, _transform.GetWorldPosition(xform))); - _transform.DetachParentToNull(mobUid, xform); + _transform.DetachEntity(mobUid, xform); } // Go and cleanup the active ents.