diff --git a/.run/Content Server+Client.run.xml b/.run/Content Server+Client.run.xml index 4ba50d81900..0ec9bf16a75 100644 --- a/.run/Content Server+Client.run.xml +++ b/.run/Content Server+Client.run.xml @@ -4,4 +4,4 @@ - \ No newline at end of file + diff --git a/Content.Server/Fluids/EntitySystems/AbsorbentSystem.cs b/Content.Server/Fluids/EntitySystems/AbsorbentSystem.cs index 6ed8af59ec2..167b1954430 100644 --- a/Content.Server/Fluids/EntitySystems/AbsorbentSystem.cs +++ b/Content.Server/Fluids/EntitySystems/AbsorbentSystem.cs @@ -25,6 +25,7 @@ public sealed class AbsorbentSystem : SharedAbsorbentSystem [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly SolutionContainerSystem _solutionSystem = default!; [Dependency] private readonly UseDelaySystem _useDelay = default!; + [Dependency] private readonly SolutionContainerSystem _solutionContainerSystem = default!; public override void Initialize() { @@ -158,11 +159,18 @@ private bool TryTransferAbsorber(EntityUid user, EntityUid used, EntityUid targe return false; } - absorberSoln.AddReagent(PuddleSystem.EvaporationReagent, water); - refillableSolution.AddSolution(nonWater, _prototype); - _solutionSystem.UpdateChemicals(used, absorberSoln); - _solutionSystem.UpdateChemicals(target, refillableSolution); + if (water > 0 && !_solutionContainerSystem.TryAddReagent(used, absorberSoln, PuddleSystem.EvaporationReagent, water, + out _)) + { + _popups.PopupEntity(Loc.GetString("mopping-system-full", ("used", used)), used, user); + } + + if (nonWater.Volume > 0 && !_solutionContainerSystem.TryAddSolution(target, refillableSolution, nonWater)) + { + absorberSoln.AddSolution(nonWater, _prototype); + _popups.PopupEntity(Loc.GetString("mopping-system-full", ("used", target)), user, user); + } _audio.PlayPvs(component.TransferSound, target); _useDelay.BeginDelay(used); return true;