From 6f475741b21d521354958648a3014e9b4f2eb251 Mon Sep 17 00:00:00 2001 From: MilenVolf <63782763+MilenVolf@users.noreply.github.com> Date: Sat, 19 Apr 2025 23:32:17 +0300 Subject: [PATCH] [#30096 Fix] Dumping a RefillableSolution into a DumpableSolution now requires `CanComplexInteract` (#33350) * dumping containers now require having at least one hand * Cleanup * Better * Apply suggested changes * Cleanup --------- Co-authored-by: Luiz Costa --- .../Fluids/EntitySystems/PuddleSystem.Transfers.cs | 6 ++++++ Content.Server/Fluids/EntitySystems/PuddleSystem.cs | 2 ++ .../Locale/en-US/fluids/components/absorbent-component.ftl | 1 + 3 files changed, 9 insertions(+) diff --git a/Content.Server/Fluids/EntitySystems/PuddleSystem.Transfers.cs b/Content.Server/Fluids/EntitySystems/PuddleSystem.Transfers.cs index 04bbf55c58..b821735265 100644 --- a/Content.Server/Fluids/EntitySystems/PuddleSystem.Transfers.cs +++ b/Content.Server/Fluids/EntitySystems/PuddleSystem.Transfers.cs @@ -14,6 +14,12 @@ public sealed partial class PuddleSystem private void OnRefillableDragged(Entity entity, ref DragDropDraggedEvent args) { + if (!_actionBlocker.CanComplexInteract(args.User)) + { + _popups.PopupEntity(Loc.GetString("mopping-system-no-hands"), args.User, args.User); + return; + } + if (!_solutionContainerSystem.TryGetSolution(entity.Owner, entity.Comp.Solution, out var soln, out var solution) || solution.Volume == FixedPoint2.Zero) { _popups.PopupEntity(Loc.GetString("mopping-system-empty", ("used", entity.Owner)), entity, args.User); diff --git a/Content.Server/Fluids/EntitySystems/PuddleSystem.cs b/Content.Server/Fluids/EntitySystems/PuddleSystem.cs index 9cf3a1252f..be45a1dbc4 100644 --- a/Content.Server/Fluids/EntitySystems/PuddleSystem.cs +++ b/Content.Server/Fluids/EntitySystems/PuddleSystem.cs @@ -4,6 +4,7 @@ using Content.Server.Chemistry.TileReactions; using Content.Server.DoAfter; using Content.Server.Fluids.Components; using Content.Server.Spreader; +using Content.Shared.ActionBlocker; using Content.Shared.Chemistry; using Content.Shared.Chemistry.Components; using Content.Shared.Chemistry.Components.SolutionManager; @@ -40,6 +41,7 @@ namespace Content.Server.Fluids.EntitySystems; /// public sealed partial class PuddleSystem : SharedPuddleSystem { + [Dependency] private readonly ActionBlockerSystem _actionBlocker = default!; [Dependency] private readonly IAdminLogManager _adminLogger = default!; [Dependency] private readonly IGameTiming _timing = default!; [Dependency] private readonly SharedMapSystem _map = default!; diff --git a/Resources/Locale/en-US/fluids/components/absorbent-component.ftl b/Resources/Locale/en-US/fluids/components/absorbent-component.ftl index 8a4d37023f..51e500a6fe 100644 --- a/Resources/Locale/en-US/fluids/components/absorbent-component.ftl +++ b/Resources/Locale/en-US/fluids/components/absorbent-component.ftl @@ -3,6 +3,7 @@ mopping-system-target-container-empty-water = { CAPITALIZE(THE($target)) } has n mopping-system-puddle-space = { CAPITALIZE(THE($used)) } is full of water mopping-system-puddle-evaporate = { CAPITALIZE(THE($target)) } is evaporating mopping-system-no-water = { CAPITALIZE(THE($used)) } has no water! +mopping-system-no-hands = You have no hands! mopping-system-full = { CAPITALIZE(THE($used)) } is full! mopping-system-empty = { CAPITALIZE(THE($used)) } is empty! -- 2.51.2