using Content.Server.Xenoarchaeology.XenoArtifacts; using Content.Shared.Construction.Prototypes; using Robust.Shared.Audio; using Robust.Shared.Serialization.TypeSerializers.Implementations; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Xenoarchaeology.Equipment.Components; /// /// A machine that is combined and linked to the /// in order to analyze artifacts and extract points. /// [RegisterComponent] public sealed partial class ArtifactAnalyzerComponent : Component { /// /// How long it takes to analyze an artifact /// [DataField("analysisDuration", customTypeSerializer: typeof(TimespanSerializer))] public TimeSpan AnalysisDuration = TimeSpan.FromSeconds(30); /// /// The corresponding console entity. /// Can be null if not linked. /// [ViewVariables] public EntityUid? Console; [ViewVariables(VVAccess.ReadWrite)] public bool ReadyToPrint = false; [DataField("scanFinishedSound")] public SoundSpecifier ScanFinishedSound = new SoundPathSpecifier("/Audio/Machines/scan_finish.ogg"); #region Analysis Data [DataField] public EntityUid? LastAnalyzedArtifact; [ViewVariables] public ArtifactNode? LastAnalyzedNode; [ViewVariables(VVAccess.ReadWrite)] public int? LastAnalyzerPointValue; #endregion }