]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Fix storages bugging out if an open storage has its component removed (#29485)
authorDrSmugleaf <10968691+DrSmugleaf@users.noreply.github.com>
Wed, 26 Jun 2024 14:11:51 +0000 (07:11 -0700)
committerGitHub <noreply@github.com>
Wed, 26 Jun 2024 14:11:51 +0000 (00:11 +1000)
* Fix storages bugging out if an open storage has its component removed

* Fix error on close

Content.Client/Storage/Systems/StorageSystem.cs
Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs

index b80a855f98655c2f7c16cdd907f38fac780137fd..a74a118cd0f25a9f7505883109b9def22e945fcc 100644 (file)
@@ -1,4 +1,4 @@
-using System.Linq;
+using System.Linq;
 using System.Numerics;
 using Content.Client.Animations;
 using Content.Shared.Hands;
@@ -69,7 +69,7 @@ public sealed class StorageSystem : SharedStorageSystem
 
     public void CloseStorageWindow(Entity<StorageComponent?> entity)
     {
-        if (!Resolve(entity, ref entity.Comp))
+        if (!Resolve(entity, ref entity.Comp, false))
             return;
 
         if (!_openStorages.Contains((entity, entity.Comp)))
index 2b434befe5399c408e1a5f051711367dfbec3852..5c2e0080a69fed2982607e0734eafeddebffe33c 100644 (file)
@@ -96,6 +96,7 @@ public abstract class SharedStorageSystem : EntitySystem
             subs.Event<BoundUIClosedEvent>(OnBoundUIClosed);
         });
 
+        SubscribeLocalEvent<StorageComponent, ComponentRemove>(OnRemove);
         SubscribeLocalEvent<StorageComponent, MapInitEvent>(OnMapInit);
         SubscribeLocalEvent<StorageComponent, GetVerbsEvent<ActivationVerb>>(AddUiVerb);
         SubscribeLocalEvent<StorageComponent, ComponentGetState>(OnStorageGetState);
@@ -133,6 +134,11 @@ public abstract class SharedStorageSystem : EntitySystem
         UpdatePrototypeCache();
     }
 
+    private void OnRemove(Entity<StorageComponent> entity, ref ComponentRemove args)
+    {
+        _ui.CloseUi(entity.Owner, StorageComponent.StorageUiKey.Key);
+    }
+
     private void OnMapInit(Entity<StorageComponent> entity, ref MapInitEvent args)
     {
         UseDelay.SetLength(entity.Owner, entity.Comp.QuickInsertCooldown, QuickInsertUseDelayID);