1
0

ForensicScannerMenu.xaml.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using System.Text;
  2. using Robust.Client.AutoGenerated;
  3. using Robust.Client.UserInterface.CustomControls;
  4. using Robust.Client.UserInterface.XAML;
  5. using Robust.Shared.Timing;
  6. using Content.Shared.Forensics;
  7. namespace Content.Client.Forensics
  8. {
  9. [GenerateTypedNameReferences]
  10. public sealed partial class ForensicScannerMenu : DefaultWindow
  11. {
  12. [Dependency] private readonly IGameTiming _gameTiming = default!;
  13. public ForensicScannerMenu()
  14. {
  15. RobustXamlLoader.Load(this);
  16. IoCManager.InjectDependencies(this);
  17. }
  18. public void UpdatePrinterState(bool disabled)
  19. {
  20. Print.Disabled = disabled;
  21. }
  22. public void UpdateState(ForensicScannerBoundUserInterfaceState msg)
  23. {
  24. if (string.IsNullOrEmpty(msg.LastScannedName))
  25. {
  26. Print.Disabled = true;
  27. Clear.Disabled = true;
  28. NameLabel.Text = string.Empty;
  29. Diagnostics.Text = string.Empty;
  30. return;
  31. }
  32. Print.Disabled = (msg.PrintReadyAt > _gameTiming.CurTime);
  33. Clear.Disabled = false;
  34. NameLabel.Text = msg.LastScannedName;
  35. var text = new StringBuilder();
  36. text.AppendLine(Loc.GetString("forensic-scanner-interface-fingerprints"));
  37. foreach (var fingerprint in msg.Fingerprints)
  38. {
  39. text.AppendLine(fingerprint);
  40. }
  41. text.AppendLine();
  42. text.AppendLine(Loc.GetString("forensic-scanner-interface-fibers"));
  43. foreach (var fiber in msg.Fibers)
  44. {
  45. text.AppendLine(fiber);
  46. }
  47. text.AppendLine();
  48. text.AppendLine(Loc.GetString("forensic-scanner-interface-dnas"));
  49. foreach (var dna in msg.TouchDNAs)
  50. {
  51. text.AppendLine(dna);
  52. }
  53. foreach (var dna in msg.SolutionDNAs)
  54. {
  55. if (msg.TouchDNAs.Contains(dna))
  56. continue;
  57. text.AppendLine(dna);
  58. }
  59. text.AppendLine();
  60. text.AppendLine(Loc.GetString("forensic-scanner-interface-residues"));
  61. foreach (var residue in msg.Residues)
  62. {
  63. text.AppendLine(residue);
  64. }
  65. Diagnostics.Text = text.ToString();
  66. }
  67. }
  68. }