From cb6884e5bb6e06e5522b073c8cd1aa340fd291f7 Mon Sep 17 00:00:00 2001 From: LordCarve <27449516+LordCarve@users.noreply.github.com> Date: Fri, 22 Dec 2023 05:26:40 +0100 Subject: [PATCH] DumpableComponent on an empty container no longer stops other interactions (#22831) DumpableComponent does not block the entity from being disposed via InteractOn a DisposalUnit --- .../Storage/EntitySystems/DumpableSystem.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Content.Shared/Storage/EntitySystems/DumpableSystem.cs b/Content.Shared/Storage/EntitySystems/DumpableSystem.cs index 1672e27214..cf548693f9 100644 --- a/Content.Shared/Storage/EntitySystems/DumpableSystem.cs +++ b/Content.Shared/Storage/EntitySystems/DumpableSystem.cs @@ -5,7 +5,6 @@ using Content.Shared.Interaction; using Content.Shared.Placeable; using Content.Shared.Storage.Components; using Content.Shared.Verbs; -using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; using Robust.Shared.Random; @@ -42,6 +41,12 @@ public sealed class DumpableSystem : EntitySystem if (!_disposalUnitSystem.HasDisposals(args.Target) && !HasComp(args.Target)) return; + if (!TryComp(uid, out var storage)) + return; + + if (!storage.Container.ContainedEntities.Any()) + return; + StartDoAfter(uid, args.Target.Value, args.User, component); args.Handled = true; } @@ -103,12 +108,12 @@ public sealed class DumpableSystem : EntitySystem } } - public void StartDoAfter(EntityUid storageUid, EntityUid? targetUid, EntityUid userUid, DumpableComponent dumpable) + private void StartDoAfter(EntityUid storageUid, EntityUid? targetUid, EntityUid userUid, DumpableComponent dumpable) { if (!TryComp(storageUid, out var storage)) return; - float delay = storage.Container.ContainedEntities.Count * (float) dumpable.DelayPerItem.TotalSeconds * dumpable.Multiplier; + var delay = storage.Container.ContainedEntities.Count * (float) dumpable.DelayPerItem.TotalSeconds * dumpable.Multiplier; _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, userUid, delay, new DumpableDoAfterEvent(), storageUid, target: targetUid, used: storageUid) { -- 2.51.2