]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Another QSI Fix About Things Being in Places they Should not (#30241)
authorCojoke <83733158+Cojoke-dot@users.noreply.github.com>
Tue, 30 Jul 2024 14:07:35 +0000 (09:07 -0500)
committerGitHub <noreply@github.com>
Tue, 30 Jul 2024 14:07:35 +0000 (10:07 -0400)
* Another QSI Fix About Things Being in Places they Should not

* cleanup

Content.Shared/Teleportation/Systems/SwapTeleporterSystem.cs

index 3852f260f7234871365042a39ca43b1633daef96..0fbaefc31bf367caa1c1fb89a925dd356d854b16 100644 (file)
@@ -150,8 +150,11 @@ public sealed class SwapTeleporterSystem : EntitySystem
             return;
         }
 
-        var (teleEnt, cont) = GetTeleportingEntity((uid, xform));
-        var (otherTeleEnt, otherCont) = GetTeleportingEntity((linkedEnt, Transform(linkedEnt)));
+        var teleEnt = GetTeleportingEntity((uid, xform));
+        var otherTeleEnt = GetTeleportingEntity((linkedEnt, Transform(linkedEnt)));
+
+        _container.TryGetOuterContainer(teleEnt, Transform(teleEnt), out var cont);
+        _container.TryGetOuterContainer(otherTeleEnt, Transform(otherTeleEnt), out var otherCont);
 
         if (otherCont != null && !_container.CanInsert(teleEnt, otherCont) ||
             cont != null && !_container.CanInsert(otherTeleEnt, cont))
@@ -195,20 +198,18 @@ public sealed class SwapTeleporterSystem : EntitySystem
             DestroyLink(linked, user); // the linked one is shown globally
     }
 
-    private (EntityUid, BaseContainer?) GetTeleportingEntity(Entity<TransformComponent> ent)
+    private EntityUid GetTeleportingEntity(Entity<TransformComponent> ent)
     {
         var parent = ent.Comp.ParentUid;
-        if (_container.TryGetOuterContainer(ent, ent, out var container))
-            parent = container.Owner;
 
         if (HasComp<MapGridComponent>(parent) || HasComp<MapComponent>(parent))
-            return (ent, container);
+            return ent;
 
         if (!_xformQuery.TryGetComponent(parent, out var parentXform) || parentXform.Anchored)
-            return (ent, container);
+            return ent;
 
         if (!TryComp<PhysicsComponent>(parent, out var body) || body.BodyType == BodyType.Static)
-            return (ent, container);
+            return ent;
 
         return GetTeleportingEntity((parent, parentXform));
     }