Files
crystall-punk-14/Content.Shared/Fluids/AbsorbentComponent.cs

54 lines
1.8 KiB
C#
Raw Normal View History

2023-08-21 07:05:43 +10:00
using Content.Shared.Audio;
using Content.Shared.FixedPoint;
2022-07-29 14:13:12 +12:00
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
{
2023-04-10 15:37:03 +10:00
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>
2023-04-10 15:37:03 +10:00
/// How much solution we can transfer in one interaction.
/// </summary>
[DataField]
2023-04-23 18:20:03 +10:00
public FixedPoint2 PickupAmount = FixedPoint2.New(100);
[DataField]
2023-04-10 15:37:03 +10:00
public SoundSpecifier PickupSound = new SoundPathSpecifier("/Audio/Effects/Fluids/watersplash.ogg")
{
2023-08-21 07:05:43 +10:00
Params = AudioParams.Default.WithVariation(SharedContentAudioSystem.DefaultVariation),
2023-04-10 15:37:03 +10:00
};
[DataField] public SoundSpecifier TransferSound =
2023-04-10 15:37:03 +10:00
new SoundPathSpecifier("/Audio/Effects/Fluids/slosh.ogg")
{
2023-08-21 07:05:43 +10:00
Params = AudioParams.Default.WithVariation(SharedContentAudioSystem.DefaultVariation).WithVolume(-3f),
2023-04-10 15:37:03 +10:00
};
public static readonly SoundSpecifier DefaultTransferSound =
new SoundPathSpecifier("/Audio/Effects/Fluids/slosh.ogg")
{
2023-08-21 07:05:43 +10:00
Params = AudioParams.Default.WithVariation(SharedContentAudioSystem.DefaultVariation).WithVolume(-3f),
2023-04-10 15:37:03 +10:00
};
/// <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;
}