using Robust.Shared.Audio; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Shared.Cargo.Components; [RegisterComponent] public sealed partial class CargoBountyConsoleComponent : Component { /// /// The id of the label entity spawned by the print label button. /// [DataField("bountyLabelId", customTypeSerializer: typeof(PrototypeIdSerializer))] public string BountyLabelId = "PaperCargoBountyManifest"; /// /// The time at which the console will be able to print a label again. /// [DataField("nextPrintTime", customTypeSerializer: typeof(TimeOffsetSerializer))] public TimeSpan NextPrintTime = TimeSpan.Zero; /// /// The time between prints. /// [DataField("printDelay")] public TimeSpan PrintDelay = TimeSpan.FromSeconds(5); /// /// The sound made when printing occurs /// [DataField("printSound")] public SoundSpecifier PrintSound = new SoundPathSpecifier("/Audio/Machines/printer.ogg"); } [NetSerializable, Serializable] public sealed class CargoBountyConsoleState : BoundUserInterfaceState { public List Bounties; public CargoBountyConsoleState(List bounties) { Bounties = bounties; } } [Serializable, NetSerializable] public sealed class BountyPrintLabelMessage : BoundUserInterfaceMessage { public string BountyId; public BountyPrintLabelMessage(string bountyId) { BountyId = bountyId; } }