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) {