From 571d4f735888343ca3ba90eaea0908257095cdb9 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Thu, 15 Feb 2024 21:52:52 +0100 Subject: [PATCH] Fix disposals bins not automatically flushing after an object is inserted (#25233) Fix disposals bins not automatically flushing after an object is inserted. Because of Spaghetti Code:tm:, AfterInsert() in DisposalUnitSystem still handles insertion itself. Except in all cases except drag/drop insert, the object is already inserted so this check fails and the remaining logic doesn't happen anymore. Fixed now. --- .../Disposal/Unit/EntitySystems/DisposalUnitSystem.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs b/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs index 0dfc1ffe0d..35b2afc2e0 100644 --- a/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs +++ b/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs @@ -198,7 +198,7 @@ public sealed class DisposalUnitSystem : SharedDisposalUnitSystem if (args.Handled || args.Cancelled || args.Args.Target == null || args.Args.Used == null) return; - AfterInsert(uid, component, args.Args.Target.Value, args.Args.User); + AfterInsert(uid, component, args.Args.Target.Value, args.Args.User, doInsert: true); args.Handled = true; } @@ -512,7 +512,7 @@ public sealed class DisposalUnitSystem : SharedDisposalUnitSystem if (delay <= 0 || userId == null) { - AfterInsert(unitId, unit, toInsertId, userId); + AfterInsert(unitId, unit, toInsertId, userId, doInsert: true); return true; } @@ -796,11 +796,11 @@ public sealed class DisposalUnitSystem : SharedDisposalUnitSystem Dirty(component); } - public void AfterInsert(EntityUid uid, SharedDisposalUnitComponent component, EntityUid inserted, EntityUid? user = null) + public void AfterInsert(EntityUid uid, SharedDisposalUnitComponent component, EntityUid inserted, EntityUid? user = null, bool doInsert = false) { _audioSystem.PlayPvs(component.InsertSound, uid); - if (!_containerSystem.Insert(inserted, component.Container)) + if (doInsert && !_containerSystem.Insert(inserted, component.Container)) return; if (user != inserted && user != null) -- 2.52.0