diff --git a/Content.IntegrationTests/Tests/Storage/StorageInteractionTest.cs b/Content.IntegrationTests/Tests/Storage/StorageInteractionTest.cs index 34402dd5e6..8d0de707f3 100644 --- a/Content.IntegrationTests/Tests/Storage/StorageInteractionTest.cs +++ b/Content.IntegrationTests/Tests/Storage/StorageInteractionTest.cs @@ -4,6 +4,7 @@ using Content.IntegrationTests.Tests.Interaction; using Content.Shared.Input; using Content.Shared.PDA; using Content.Shared.Storage; +using Content.Shared.Timing; using Robust.Client.UserInterface; using Robust.Shared.Containers; using Robust.Shared.GameObjects; @@ -27,11 +28,22 @@ public sealed class StorageInteractionTest : InteractionTest Assert.That(IsUiOpen(StorageComponent.StorageUiKey.Key), Is.False); Assert.That(IsUiOpen(PdaUiKey.Key), Is.False); + await Server.WaitPost(() => SEntMan.RemoveComponent(STarget!.Value)); + await RunTicks(5); + // Activating the backpack opens the UI await Activate(); Assert.That(IsUiOpen(StorageComponent.StorageUiKey.Key), Is.True); Assert.That(IsUiOpen(PdaUiKey.Key), Is.False); + // Activating it again closes the UI + await Activate(); + Assert.That(IsUiOpen(StorageComponent.StorageUiKey.Key), Is.False); + + // Open it again + await Activate(); + Assert.That(IsUiOpen(StorageComponent.StorageUiKey.Key), Is.True); + // Pick up a PDA var pda = await PlaceInHands("PassengerPDA"); var sPda = ToServer(pda); diff --git a/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs b/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs index d87b57bfc8..f20e2f9ab1 100644 --- a/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs +++ b/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs @@ -298,7 +298,7 @@ public abstract class SharedStorageSystem : EntitySystem return; // prevent spamming bag open / honkerton honk sound - silent |= TryComp(uid, out var useDelay) && UseDelay.IsDelayed((uid, useDelay)); + silent |= TryComp(uid, out var useDelay) && UseDelay.IsDelayed((uid, useDelay), id: OpenUiUseDelayID); if (!CanInteract(entity, (uid, storageComp), silent: silent)) return; @@ -308,7 +308,7 @@ public abstract class SharedStorageSystem : EntitySystem Audio.PlayPredicted(storageComp.StorageOpenSound, uid, entity); if (useDelay != null) - UseDelay.TryResetDelay((uid, useDelay)); + UseDelay.TryResetDelay((uid, useDelay), id: OpenUiUseDelayID); } _ui.OpenUi(uid, StorageComponent.StorageUiKey.Key, entity);