using Content.Shared.CartridgeLoader.Cartridges; using Content.Shared.Paper; using Robust.Shared.Audio; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Server.CartridgeLoader.Cartridges; [RegisterComponent, Access(typeof(LogProbeCartridgeSystem))] [AutoGenerateComponentPause] public sealed partial class LogProbeCartridgeComponent : Component { /// /// The name of the scanned entity, sent to clients when they open the UI. /// [DataField] public string EntityName = string.Empty; /// /// The list of pulled access logs /// [DataField, ViewVariables] public List PulledAccessLogs = new(); /// /// The sound to make when we scan something with access /// [DataField, ViewVariables(VVAccess.ReadWrite)] public SoundSpecifier SoundScan = new SoundPathSpecifier("/Audio/Machines/scan_finish.ogg"); /// /// Paper to spawn when printing logs. /// [DataField] public EntProtoId PaperPrototype = "PaperAccessLogs"; [DataField] public SoundSpecifier PrintSound = new SoundPathSpecifier("/Audio/Machines/diagnoser_printing.ogg"); /// /// How long you have to wait before printing logs again. /// [DataField] public TimeSpan PrintCooldown = TimeSpan.FromSeconds(5); /// /// When anyone is allowed to spawn another printout. /// [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField] public TimeSpan NextPrintAllowed = TimeSpan.Zero; }