using Content.Shared.Cargo.Prototypes; using Robust.Shared.Audio; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; using Content.Shared._NF.Bank.Components; using Content.Shared.Stacks; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Shared._NF.Cargo.Components; /// /// Handles sending order requests to cargo. Doesn't handle orders themselves via shuttle or telepads. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentPause] [Access(typeof(SharedNFCargoSystem))] public sealed partial class NFCargoOrderConsoleComponent : Component { [DataField] public SoundSpecifier ErrorSound = new SoundPathSpecifier("/Audio/Effects/Cargo/buzz_sigh.ogg"); [DataField] public SoundSpecifier ConfirmSound = new SoundPathSpecifier("/Audio/Effects/Cargo/ping.ogg"); /// /// The stack representing cash dispensed on withdrawals. /// [DataField] public ProtoId CashType = "Credit"; /// /// All of the s that are supported. /// [DataField] public List AllowedGroups = new() { "market" }; // Frontier: station taxes // Accounts to receive tax value (each currently receives the entirety of the taxed value) [DataField] public Dictionary TaxAccounts = new(); /// /// The time at which the console will be able to play the deny sound. /// [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField] public TimeSpan NextDenySoundTime = TimeSpan.Zero; /// /// The minimum time between playing the deny sound. /// [DataField] public TimeSpan DenySoundDelay = TimeSpan.FromSeconds(2); }