Make storage implant closable using the action again (#31381)

This commit is contained in:
slarticodefast
2024-08-24 03:31:02 +02:00
committed by GitHub
parent 8c55057a10
commit 8f4ee7ac96
2 changed files with 22 additions and 15 deletions

View File

@@ -41,23 +41,23 @@ namespace Content.Shared.Storage.EntitySystems;
public abstract class SharedStorageSystem : EntitySystem public abstract class SharedStorageSystem : EntitySystem
{ {
[Dependency] private readonly IPrototypeManager _prototype = default!; [Dependency] private readonly IPrototypeManager _prototype = default!;
[Dependency] protected readonly IRobustRandom Random = default!; [Dependency] protected readonly IRobustRandom Random = default!;
[Dependency] protected readonly ActionBlockerSystem ActionBlocker = default!; [Dependency] protected readonly ActionBlockerSystem ActionBlocker = default!;
[Dependency] private readonly EntityLookupSystem _entityLookupSystem = default!; [Dependency] private readonly EntityLookupSystem _entityLookupSystem = default!;
[Dependency] private readonly SharedAppearanceSystem _appearance = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!;
[Dependency] protected readonly SharedAudioSystem Audio = default!; [Dependency] protected readonly SharedAudioSystem Audio = default!;
[Dependency] private readonly SharedContainerSystem _containerSystem = default!; [Dependency] private readonly SharedContainerSystem _containerSystem = default!;
[Dependency] private readonly SharedDoAfterSystem _doAfterSystem = default!; [Dependency] private readonly SharedDoAfterSystem _doAfterSystem = default!;
[Dependency] protected readonly SharedEntityStorageSystem EntityStorage = default!; [Dependency] protected readonly SharedEntityStorageSystem EntityStorage = default!;
[Dependency] private readonly SharedInteractionSystem _interactionSystem = default!; [Dependency] private readonly SharedInteractionSystem _interactionSystem = default!;
[Dependency] private readonly InventorySystem _inventory = default!; [Dependency] private readonly InventorySystem _inventory = default!;
[Dependency] protected readonly SharedItemSystem ItemSystem = default!; [Dependency] protected readonly SharedItemSystem ItemSystem = default!;
[Dependency] private readonly SharedPopupSystem _popupSystem = default!; [Dependency] private readonly SharedPopupSystem _popupSystem = default!;
[Dependency] private readonly SharedHandsSystem _sharedHandsSystem = default!; [Dependency] private readonly SharedHandsSystem _sharedHandsSystem = default!;
[Dependency] private readonly SharedStackSystem _stack = default!; [Dependency] private readonly SharedStackSystem _stack = default!;
[Dependency] protected readonly SharedTransformSystem TransformSystem = default!; [Dependency] protected readonly SharedTransformSystem TransformSystem = default!;
[Dependency] private readonly SharedUserInterfaceSystem _ui = default!; [Dependency] private readonly SharedUserInterfaceSystem _ui = default!;
[Dependency] protected readonly UseDelaySystem UseDelay = default!; [Dependency] protected readonly UseDelaySystem UseDelay = default!;
[Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!;
[Dependency] private readonly ISharedAdminLogManager _adminLog = default!; [Dependency] private readonly ISharedAdminLogManager _adminLog = default!;
@@ -403,7 +403,13 @@ public abstract class SharedStorageSystem : EntitySystem
if (args.Handled) if (args.Handled)
return; return;
OpenStorageUI(uid, args.Performer, storageComp, false); var uiOpen = _ui.IsUiOpen(uid, StorageComponent.StorageUiKey.Key, args.Performer);
if (uiOpen)
_ui.CloseUi(uid, StorageComponent.StorageUiKey.Key, args.Performer);
else
OpenStorageUI(uid, args.Performer, storageComp, false);
args.Handled = true; args.Handled = true;
} }
@@ -1395,7 +1401,7 @@ public abstract class SharedStorageSystem : EntitySystem
if (session is not { } playerSession) if (session is not { } playerSession)
return; return;
if (playerSession.AttachedEntity is not {Valid: true} playerEnt || !Exists(playerEnt)) if (playerSession.AttachedEntity is not { Valid: true } playerEnt || !Exists(playerEnt))
return; return;
if (!_inventory.TryGetSlotEntity(playerEnt, slot, out var storageEnt)) if (!_inventory.TryGetSlotEntity(playerEnt, slot, out var storageEnt))

View File

@@ -44,8 +44,8 @@
- type: entity - type: entity
id: ActionOpenStorageImplant id: ActionOpenStorageImplant
name: Open Storage Implant name: Toggle Storage Implant
description: Opens the storage implant embedded under your skin description: Opens or closes the storage implant embedded under your skin
components: components:
- type: InstantAction - type: InstantAction
itemIconStyle: BigAction itemIconStyle: BigAction
@@ -54,6 +54,7 @@
sprite: Clothing/Back/Backpacks/backpack.rsi sprite: Clothing/Back/Backpacks/backpack.rsi
state: icon state: icon
event: !type:OpenStorageImplantEvent event: !type:OpenStorageImplantEvent
useDelay: 1
- type: entity - type: entity
parent: BaseSuicideAction parent: BaseSuicideAction