using System.Text; using Robust.Client.AutoGenerated; using Robust.Client.UserInterface.CustomControls; using Robust.Client.UserInterface.XAML; using Robust.Shared.Timing; using Content.Shared.Forensics.Components; namespace Content.Client.Forensics; [GenerateTypedNameReferences] public sealed partial class ForensicScannerMenu : DefaultWindow { [Dependency] private IGameTiming _gameTiming = default!; private TimeSpan? _printReady; public ForensicScannerMenu() { RobustXamlLoader.Load(this); IoCManager.InjectDependencies(this); } protected override void FrameUpdate(FrameEventArgs args) { base.FrameUpdate(args); if (string.IsNullOrEmpty(NameLabel.Text)) return; Print.Disabled = _printReady > _gameTiming.CurTime; } public void Update(ForensicScannerComponent scanner) { if (string.IsNullOrEmpty(scanner.LastScannedName)) { Print.Disabled = true; Clear.Disabled = true; NameLabel.Text = string.Empty; Diagnostics.Text = string.Empty; return; } _printReady = scanner.PrintReadyAt; Clear.Disabled = false; NameLabel.Text = scanner.LastScannedName; var text = new StringBuilder(); text.AppendLine(Loc.GetString("forensic-scanner-interface-fingerprints")); foreach (var fingerprint in scanner.Fingerprints) { text.AppendLine(fingerprint); } text.AppendLine(); text.AppendLine(Loc.GetString("forensic-scanner-interface-fibers")); foreach (var fiber in scanner.Fibers) { text.AppendLine(fiber); } text.AppendLine(); text.AppendLine(Loc.GetString("forensic-scanner-interface-dnas")); foreach (var dna in scanner.DNAs) { text.AppendLine(dna); } text.AppendLine(); text.AppendLine(Loc.GetString("forensic-scanner-interface-residues")); foreach (var residue in scanner.Residues) { text.AppendLine(residue); } Diagnostics.Text = text.ToString(); } }