From e89be95d4c3085d7d6d08ad5aafa942cfc32c934 Mon Sep 17 00:00:00 2001 From: Arendian <137322659+Arendian@users.noreply.github.com> Date: Sat, 20 Jan 2024 03:50:14 +0100 Subject: [PATCH] Prevent EntityStorages from being opened while inside another container (#24253) * Prevent EntityStorages from being opened while inside a mech. * compressed into few lines * unneeded line * Popup client --------- Co-authored-by: metalgearsloth --- .../EntitySystems/SharedEntityStorageSystem.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Content.Shared/Storage/EntitySystems/SharedEntityStorageSystem.cs b/Content.Shared/Storage/EntitySystems/SharedEntityStorageSystem.cs index 911c6e5380..19e41848a1 100644 --- a/Content.Shared/Storage/EntitySystems/SharedEntityStorageSystem.cs +++ b/Content.Shared/Storage/EntitySystems/SharedEntityStorageSystem.cs @@ -336,6 +336,17 @@ public abstract class SharedEntityStorageSystem : EntitySystem return false; } + if (_container.IsEntityInContainer(target)) + { + if (_container.TryGetOuterContainer(target,Transform(target) ,out var container) && + !HasComp(container.Owner)) + { + Popup.PopupClient(Loc.GetString("entity-storage-component-already-contains-user-message"), user, user); + + return false; + } + } + //Checks to see if the opening position, if offset, is inside of a wall. if (component.EnteringOffset != new Vector2(0, 0) && !HasComp(target)) //if the entering position is offset {