Cargo request and bounty console deny sound cooldown (#37234)

* Cargo bounty console deny sound cooldown

* ordering computer cooldown

* Update Content.Shared/Cargo/Components/CargoBountyConsoleComponent.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Update Content.Shared/Cargo/Components/CargoBountyConsoleComponent.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Update Content.Server/Cargo/Systems/CargoSystem.Bounty.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* AutoGenerateComponentPause

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
This commit is contained in:
themias
2025-05-07 20:34:44 -04:00
committed by GitHub
parent b3c4c7c32b
commit 14adb1ff01
4 changed files with 38 additions and 4 deletions

View File

@@ -93,7 +93,11 @@ public sealed partial class CargoSystem
if (TryComp<AccessReaderComponent>(uid, out var accessReaderComponent) && if (TryComp<AccessReaderComponent>(uid, out var accessReaderComponent) &&
!_accessReaderSystem.IsAllowed(mob, uid, accessReaderComponent)) !_accessReaderSystem.IsAllowed(mob, uid, accessReaderComponent))
{ {
_audio.PlayPvs(component.DenySound, uid); if (Timing.CurTime >= component.NextDenySoundTime)
{
component.NextDenySoundTime = Timing.CurTime + component.DenySoundDelay;
_audio.PlayPvs(component.DenySound, uid);
}
return; return;
} }

View File

@@ -16,6 +16,7 @@ using JetBrains.Annotations;
using Robust.Shared.Audio; using Robust.Shared.Audio;
using Robust.Shared.Map; using Robust.Shared.Map;
using Robust.Shared.Prototypes; using Robust.Shared.Prototypes;
using Robust.Shared.Timing;
using Robust.Shared.Utility; using Robust.Shared.Utility;
namespace Content.Server.Cargo.Systems namespace Content.Server.Cargo.Systems
@@ -24,6 +25,7 @@ namespace Content.Server.Cargo.Systems
{ {
[Dependency] private readonly SharedTransformSystem _transformSystem = default!; [Dependency] private readonly SharedTransformSystem _transformSystem = default!;
[Dependency] private readonly EmagSystem _emag = default!; [Dependency] private readonly EmagSystem _emag = default!;
[Dependency] private readonly IGameTiming _timing = default!;
private void InitializeConsole() private void InitializeConsole()
{ {
@@ -431,7 +433,11 @@ namespace Content.Server.Cargo.Systems
private void PlayDenySound(EntityUid uid, CargoOrderConsoleComponent component) private void PlayDenySound(EntityUid uid, CargoOrderConsoleComponent component)
{ {
_audio.PlayPvs(_audio.ResolveSound(component.ErrorSound), uid); if (_timing.CurTime >= component.NextDenySoundTime)
{
component.NextDenySoundTime = _timing.CurTime + component.DenySoundDelay;
_audio.PlayPvs(_audio.ResolveSound(component.ErrorSound), uid);
}
} }
private static CargoOrderData GetOrderData(CargoConsoleAddOrderMessage args, CargoProductPrototype cargoProduct, int id, ProtoId<CargoAccountPrototype> account) private static CargoOrderData GetOrderData(CargoConsoleAddOrderMessage args, CargoProductPrototype cargoProduct, int id, ProtoId<CargoAccountPrototype> account)

View File

@@ -1,4 +1,4 @@
using Robust.Shared.Audio; using Robust.Shared.Audio;
using Robust.Shared.Prototypes; using Robust.Shared.Prototypes;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
@@ -6,7 +6,7 @@ using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototy
namespace Content.Shared.Cargo.Components; namespace Content.Shared.Cargo.Components;
[RegisterComponent] [RegisterComponent, AutoGenerateComponentPause]
public sealed partial class CargoBountyConsoleComponent : Component public sealed partial class CargoBountyConsoleComponent : Component
{ {
/// <summary> /// <summary>
@@ -44,6 +44,18 @@ public sealed partial class CargoBountyConsoleComponent : Component
/// </summary> /// </summary>
[DataField("denySound")] [DataField("denySound")]
public SoundSpecifier DenySound = new SoundPathSpecifier("/Audio/Effects/Cargo/buzz_two.ogg"); public SoundSpecifier DenySound = new SoundPathSpecifier("/Audio/Effects/Cargo/buzz_two.ogg");
/// <summary>
/// The time at which the console will be able to make the denial sound again.
/// </summary>
[DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField]
public TimeSpan NextDenySoundTime = TimeSpan.Zero;
/// <summary>
/// The time between playing a denial sound.
/// </summary>
[DataField]
public TimeSpan DenySoundDelay = TimeSpan.FromSeconds(2);
} }
[NetSerializable, Serializable] [NetSerializable, Serializable]

View File

@@ -126,6 +126,18 @@ public sealed partial class CargoOrderConsoleComponent : Component
/// </summary> /// </summary>
[DataField] [DataField]
public SoundSpecifier ScanSound = new SoundCollectionSpecifier("CargoBeep"); public SoundSpecifier ScanSound = new SoundCollectionSpecifier("CargoBeep");
/// <summary>
/// The time at which the console will be able to play the deny sound.
/// </summary>
[DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField]
public TimeSpan NextDenySoundTime = TimeSpan.Zero;
/// <summary>
/// The time between playing the deny sound.
/// </summary>
[DataField]
public TimeSpan DenySoundDelay = TimeSpan.FromSeconds(2);
} }
/// <summary> /// <summary>