From c34878e7754c4b4c0acda6b541593ad486f4b871 Mon Sep 17 00:00:00 2001 From: Fahasor <70820551+Fahasor@users.noreply.github.com> Date: Mon, 7 Aug 2023 20:47:34 +0300 Subject: [PATCH] Mop fix (#18758) --- Content.Server/Fluids/EntitySystems/AbsorbentSystem.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Content.Server/Fluids/EntitySystems/AbsorbentSystem.cs b/Content.Server/Fluids/EntitySystems/AbsorbentSystem.cs index 167b195443..e004eea943 100644 --- a/Content.Server/Fluids/EntitySystems/AbsorbentSystem.cs +++ b/Content.Server/Fluids/EntitySystems/AbsorbentSystem.cs @@ -140,6 +140,7 @@ public sealed class AbsorbentSystem : SharedAbsorbentSystem // Remove water on target // Then do the transfer. var nonWater = absorberSoln.SplitSolutionWithout(component.PickupAmount, PuddleSystem.EvaporationReagent); + _solutionContainerSystem.UpdateChemicals(used, absorberSoln); if (nonWater.Volume == FixedPoint2.Zero && absorberSoln.AvailableVolume == FixedPoint2.Zero) { @@ -152,6 +153,7 @@ public sealed class AbsorbentSystem : SharedAbsorbentSystem absorberSoln.AvailableVolume; var water = refillableSolution.RemoveReagent(PuddleSystem.EvaporationReagent, transferAmount); + _solutionContainerSystem.UpdateChemicals(target, refillableSolution); if (water == FixedPoint2.Zero && nonWater.Volume == FixedPoint2.Zero) { @@ -166,11 +168,14 @@ public sealed class AbsorbentSystem : SharedAbsorbentSystem _popups.PopupEntity(Loc.GetString("mopping-system-full", ("used", used)), used, user); } - if (nonWater.Volume > 0 && !_solutionContainerSystem.TryAddSolution(target, refillableSolution, nonWater)) + var toTransferSolution = nonWater.SplitSolution(refillableSolution.AvailableVolume); + + if (nonWater.Volume > 0 && !_solutionContainerSystem.TryAddSolution(target, refillableSolution, toTransferSolution)) { - absorberSoln.AddSolution(nonWater, _prototype); _popups.PopupEntity(Loc.GetString("mopping-system-full", ("used", target)), user, user); } + + _solutionContainerSystem.TryAddSolution(used, absorberSoln, nonWater); _audio.PlayPvs(component.TransferSound, target); _useDelay.BeginDelay(used); return true;