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";
}
}