* feat: now vacuum cleaner can suck solutions from floor * refactor using AbsorbentSystem instead of separate vacuum cleaner * refactor: remove unused vacuum cleaner files * refactor: renamed ConnectedContainerComponent to SlotBasedConnectedContainerComponent (and system) * fix: fix invalid comp name * fix: no more spray nozzle messaging about water inside bottles etc. * refactor: minor refactor in SlotBasedConnectedContainerSystem and adjustments after merge * refactor: cleanups * refactor: renaming * refactor: update to use _puddleSystem.GetAbsorbentReagents * refactor: changed interactions with SlotBasedConnectedContainerSystem into events * refactor: new sound and action delay adjusted to sound (amount tweaked a bit accordingly, almost) * refactor: added networking for SlotBasedConnectedContainerComponent * fix attribution for vacuum-cleaner-fast.ogg * trying to fix multi-license for mix sound file * remove empty line * refactor: remove trailing whitespace * by ref struct, brother --------- Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru> Co-authored-by: EmoGarbage404 <retron404@gmail.com>
54 lines
1.8 KiB
C#
54 lines
1.8 KiB
C#
using Content.Shared.Audio;
|
|
using Content.Shared.FixedPoint;
|
|
using Robust.Shared.Audio;
|
|
using Robust.Shared.GameStates;
|
|
|
|
namespace Content.Shared.Fluids;
|
|
|
|
/// <summary>
|
|
/// For entities that can clean up puddles
|
|
/// </summary>
|
|
[RegisterComponent, NetworkedComponent]
|
|
public sealed partial class AbsorbentComponent : Component
|
|
{
|
|
public Dictionary<Color, float> Progress = new();
|
|
|
|
/// <summary>
|
|
/// Name for solution container, that should be used for absorbed solution storage and as source of absorber solution.
|
|
/// Default is 'absorbed'.
|
|
/// </summary>
|
|
[DataField]
|
|
public string SolutionName = "absorbed";
|
|
|
|
/// <summary>
|
|
/// How much solution we can transfer in one interaction.
|
|
/// </summary>
|
|
[DataField]
|
|
public FixedPoint2 PickupAmount = FixedPoint2.New(100);
|
|
|
|
[DataField]
|
|
public SoundSpecifier PickupSound = new SoundPathSpecifier("/Audio/Effects/Fluids/watersplash.ogg")
|
|
{
|
|
Params = AudioParams.Default.WithVariation(SharedContentAudioSystem.DefaultVariation),
|
|
};
|
|
|
|
[DataField] public SoundSpecifier TransferSound =
|
|
new SoundPathSpecifier("/Audio/Effects/Fluids/slosh.ogg")
|
|
{
|
|
Params = AudioParams.Default.WithVariation(SharedContentAudioSystem.DefaultVariation).WithVolume(-3f),
|
|
};
|
|
|
|
public static readonly SoundSpecifier DefaultTransferSound =
|
|
new SoundPathSpecifier("/Audio/Effects/Fluids/slosh.ogg")
|
|
{
|
|
Params = AudioParams.Default.WithVariation(SharedContentAudioSystem.DefaultVariation).WithVolume(-3f),
|
|
};
|
|
|
|
/// <summary>
|
|
/// Marker that absorbent component owner should try to use 'absorber solution' to replace solution to be absorbed.
|
|
/// Target solution will be simply consumed into container if set to false.
|
|
/// </summary>
|
|
[DataField]
|
|
public bool UseAbsorberSolution = true;
|
|
}
|