From d4982bad3102c22f8374a697caa54b4aa6c14b5a Mon Sep 17 00:00:00 2001 From: Vasilis Date: Thu, 4 Apr 2024 10:39:54 +0200 Subject: [PATCH] Stop mop buckets from spilling when you push them (#26706) --- .../Fluids/EntitySystems/PuddleSystem.Spillable.cs | 3 +++ .../Fluids/Components/SpillableComponent.cs | 6 ++++++ .../Entities/Structures/Specific/Janitor/janicart.yml | 11 +++++++++++ 3 files changed, 20 insertions(+) diff --git a/Content.Server/Fluids/EntitySystems/PuddleSystem.Spillable.cs b/Content.Server/Fluids/EntitySystems/PuddleSystem.Spillable.cs index bd7c55e85e..7780e5d467 100644 --- a/Content.Server/Fluids/EntitySystems/PuddleSystem.Spillable.cs +++ b/Content.Server/Fluids/EntitySystems/PuddleSystem.Spillable.cs @@ -143,6 +143,9 @@ public sealed partial class PuddleSystem if (Openable.IsClosed(entity.Owner)) return; + if (!entity.Comp.SpillWhenThrown) + return; + if (args.User != null) { _adminLogger.Add(LogType.Landed, diff --git a/Content.Shared/Fluids/Components/SpillableComponent.cs b/Content.Shared/Fluids/Components/SpillableComponent.cs index 428d91f2de..51bb73a11f 100644 --- a/Content.Shared/Fluids/Components/SpillableComponent.cs +++ b/Content.Shared/Fluids/Components/SpillableComponent.cs @@ -29,4 +29,10 @@ public sealed partial class SpillableComponent : Component /// [DataField] public FixedPoint2 MaxMeleeSpillAmount = FixedPoint2.New(20); + + /// + /// Should this item be spilled when thrown? + /// + [DataField] + public bool SpillWhenThrown = true; } diff --git a/Resources/Prototypes/Entities/Structures/Specific/Janitor/janicart.yml b/Resources/Prototypes/Entities/Structures/Specific/Janitor/janicart.yml index bdbff1b504..f35a052723 100644 --- a/Resources/Prototypes/Entities/Structures/Specific/Janitor/janicart.yml +++ b/Resources/Prototypes/Entities/Structures/Specific/Janitor/janicart.yml @@ -23,6 +23,7 @@ - type: Spillable solution: bucket spillDelay: 3.0 + spillWhenThrown: false - type: DrainableSolution solution: bucket - type: RefillableSolution @@ -82,6 +83,15 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.45,-0.45,0.45,0.45" + density: 60 + mask: + - MachineMask - type: entity name: mop bucket @@ -207,6 +217,7 @@ - type: Spillable solution: bucket spillDelay: 3.0 + spillWhenThrown: false - type: SolutionContainerManager solutions: bucket: