using Content.Shared._White.Medical.BodyScanner; using Robust.Shared.Audio; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server._White.Medical.BodyScanner { [RegisterComponent] public sealed partial class BodyScannerConsoleComponent : Component { public const string ScannerPort = "MedicalScannerReceiver"; /// /// Genetic scanner. Can be null if not linked. /// [ViewVariables] public EntityUid? GeneticScanner; /// /// Maximum distance between body scanner console and one if its machines. /// [DataField("maxDistance")] public float MaxDistance = 4f; public bool GeneticScannerInRange = true; /// /// How long it takes to scan. /// [ViewVariables, DataField("scanDuration", customTypeSerializer: typeof(TimespanSerializer))] public TimeSpan ScanDuration = TimeSpan.FromSeconds(3); /// /// Sound to play on scan finished. /// [DataField("scanFinishedSound")] public SoundSpecifier ScanFinishedSound = new SoundPathSpecifier("/Audio/Machines/scan_finish.ogg"); /// /// Sound to play when printing. /// [DataField("printSound")] public SoundSpecifier PrintSound = new SoundPathSpecifier("/Audio/Machines/diagnoser_printing.ogg"); [ViewVariables] public BodyScannerConsoleBoundUserInterfaceState? LastScannedState; /// /// The entity spawned by a report. /// [DataField("reportEntityId", customTypeSerializer: typeof(PrototypeIdSerializer))] public string ReportEntityId = "Paper"; } }