From 5d1fcf9dffba627dd226b4b16f2be41b6fcfd669 Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Sun, 7 Jan 2024 23:57:54 +1100 Subject: [PATCH] Fix magnet re-parenting (#23680) Me when I test at default position and forgor to store localposition. --- Content.Server/Salvage/SalvageSystem.Magnet.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Content.Server/Salvage/SalvageSystem.Magnet.cs b/Content.Server/Salvage/SalvageSystem.Magnet.cs index 2a5e15a363..4311796302 100644 --- a/Content.Server/Salvage/SalvageSystem.Magnet.cs +++ b/Content.Server/Salvage/SalvageSystem.Magnet.cs @@ -18,7 +18,7 @@ public sealed partial class SalvageSystem private EntityQuery _salvMobQuery; - private List<(Entity Entity, EntityUid MapUid)> _detachEnts = new(); + private List<(Entity Entity, EntityUid MapUid, Vector2 LocalPosition)> _detachEnts = new(); private void InitializeMagnet() { @@ -144,7 +144,7 @@ public sealed partial class SalvageSystem continue; // Can't parent directly to map as it runs grid traversal. - _detachEnts.Add(((mobUid, xform), xform.MapUid.Value)); + _detachEnts.Add(((mobUid, xform), xform.MapUid.Value, _transform.GetWorldPosition(xform))); _transform.DetachParentToNull(mobUid, xform); } @@ -156,7 +156,7 @@ public sealed partial class SalvageSystem foreach (var entity in _detachEnts) { - _transform.SetParent(entity.Entity.Owner, entity.Entity.Comp, entity.MapUid); + _transform.SetCoordinates(entity.Entity.Owner, new EntityCoordinates(entity.MapUid, entity.LocalPosition)); } data.Comp.ActiveEntities = null; -- 2.51.2