using Content.Server.Fluids.EntitySystems; using Content.Shared.FixedPoint; using Content.Shared.Sound; namespace Content.Server.Fluids.Components; /// /// For entities that can clean up puddles /// [RegisterComponent, Friend(typeof(MoppingSystem))] public sealed class AbsorbentComponent : Component { public const string SolutionName = "absorbed"; [DataField("pickupAmount")] public FixedPoint2 PickupAmount = FixedPoint2.New(10); /// /// When using this tool on an empty floor tile, leave this much reagent as a new puddle. /// [DataField("residueAmount")] public FixedPoint2 ResidueAmount = FixedPoint2.New(10); // Should be higher than MopLowerLimit /// /// To leave behind a wet floor, this tool will be unable to take from puddles with a volume less than this amount. /// [DataField("mopLowerLimit")] public FixedPoint2 MopLowerLimit = FixedPoint2.New(5); [DataField("pickupSound")] public SoundSpecifier PickupSound = new SoundPathSpecifier("/Audio/Effects/Fluids/slosh.ogg"); [DataField("transferSound")] public SoundSpecifier TransferSound = new SoundPathSpecifier("/Audio/Effects/Fluids/watersplash.ogg"); /// /// Multiplier for the do_after delay for how quickly the mopping happens. /// [ViewVariables] [DataField("mopSpeed")] public float MopSpeed = 1; /// /// How many entities can this tool interact with at once? /// [DataField("maxEntities")] public int MaxInteractingEntities = 1; /// /// What entities is this tool interacting with right now? /// [ViewVariables] public HashSet InteractingEntities = new(); }