Files
Delta-v/Content.Shared/_DV/Footprints/Components/DecalScrubberComponent.cs
T
DisposableCrewmember42andpre-commit-ci[bot] 378cceb44f feat: Make footprints decals (#5226)
* feat(wip): footprints now decals instead of entities

* fix: apply proper offset to footprint decals

* refactor: basedecaloffset to readonly

* feat: add back dragging smears, also resolve conflicts

* refactor: rename dragging to beingDragged for clarity

* docs: properly document draggingdecals

* refactor: remove unused reagent code

* refactor: move under _DV

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* feat(wip): mops now able to remove decals

# Conflicts:
#	Content.Server/_DV/Footprints/Systems/PuddleFootPrintsSystem.cs

* fix: reset ColorQuantity if transparent prints

* feat: implement scrubbing

* refactor: remove unused import, ioc dependency

* feat: remove 5u water when scrubbing

* fix: remove unused attributes from protos

* docs: add summary to puddlefootprintscomp

* fix: colliding entity checked for flight, not the puddle

also minor refactor: renamed local variables/parameters of OnEndCollide for clarity

* style: remove newlines, redundant parens

* test: ensure FootPrints stepSize/dragSize are positive

* docs: add prediction todo

* feat: add bare footprints, restore sprite assignments

---------

Signed-off-by: DisposableCrewmember42 <disposablecrewmember42@proton.me>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-03-26 14:44:06 +01:00

40 lines
1.1 KiB
C#

using Content.Shared.Chemistry.Reagent;
using Content.Shared.DoAfter;
using Content.Shared.FixedPoint;
using Content.Shared.Fluids;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Map;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization;
namespace Content.Shared._DV.Footprints.Components;
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
public sealed partial class DecalScrubberComponent : Component
{
[DataField]
public float Radius = 1f;
[DataField]
public TimeSpan DoAfterLength = TimeSpan.FromSeconds(2);
[DataField, AutoNetworkedField]
public EntityCoordinates? LastClick;
[DataField]
public SoundSpecifier ScrubSound = AbsorbentComponent.DefaultTransferSound;
[DataField]
public string? CleaningSolutionName;
[DataField]
public ProtoId<ReagentPrototype> CleaningReagent = "Water";
[DataField]
public FixedPoint2 CleaningReagentCost = 5.0;
}
[Serializable, NetSerializable]
public sealed partial class DecalScrubberDoAfterEvent : SimpleDoAfterEvent;