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: