From 229c08c5605bc970e8ebdc195de84d52d82b2e32 Mon Sep 17 00:00:00 2001 From: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com> Date: Tue, 23 Dec 2025 11:47:46 -0800 Subject: [PATCH] Fix the Infinite Spill (#42022) i hate solutions i hate solutions Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com> --- .../Fluids/EntitySystems/PuddleSystem.cs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/Content.Server/Fluids/EntitySystems/PuddleSystem.cs b/Content.Server/Fluids/EntitySystems/PuddleSystem.cs index c756a8e696..aca8c5383d 100644 --- a/Content.Server/Fluids/EntitySystems/PuddleSystem.cs +++ b/Content.Server/Fluids/EntitySystems/PuddleSystem.cs @@ -387,21 +387,34 @@ public sealed partial class PuddleSystem : SharedPuddleSystem spilled = solution.Value.Comp.Solution; - return TrySplashSpillAt(entity, coordinates, spilled, out puddleUid, sound, user); + return TrySplashSpillAt(entity, coordinates, solution.Value, out puddleUid, sound, user); + } + + private bool TrySplashSpillAt(EntityUid entity, + EntityCoordinates coordinates, + Entity solution, + out EntityUid puddleUid, + bool sound = true, + EntityUid? user = null) + { + var result = TrySplashSpillAt(entity, coordinates, solution.Comp.Solution, out puddleUid, sound, user); + _solutionContainerSystem.UpdateChemicals(solution); + return result; } public override bool TrySplashSpillAt(EntityUid entity, EntityCoordinates coordinates, - Solution spilled, + Solution solution, out EntityUid puddleUid, bool sound = true, EntityUid? user = null) { puddleUid = EntityUid.Invalid; - if (spilled.Volume == 0) + if (solution.Volume == 0) return false; + var spilled = solution.SplitSolution(solution.Volume); var targets = new List(); var reactive = new HashSet>(); _lookup.GetEntitiesInRange(coordinates, 1.0f, reactive); -- 2.52.0