Fix forensic scanner UI. (#12398)

* Add missing Dispose method to ForensicScannerBoundUserInterface.

* Remove old code from ForensicScanner.

* Prevent forensic scanner from being used on the floor and allow its window to stay open when active hand is swapped.

* Use more standardized UI code for ForensicScanner.

* Add a delay to ForensicScanner printing.

* Show name of what was scanned on ForensicScanner UI.

* Add a print sound for ForensicScanner.

* Add more error reporting for ForensicScanner.

* Centralize common logic in ForensicScannerSystem.

* Allow ForensicScanner blank printouts.

* Tweak ForensicScanner audio parameters.
This commit is contained in:
Vordenburg
2022-11-08 16:06:09 -05:00
committed by GitHub
parent 754d3c1634
commit ed8141d333
10 changed files with 269 additions and 57 deletions

View File

@@ -3,17 +3,26 @@ using Robust.Shared.Serialization;
namespace Content.Shared.Forensics
{
[Serializable, NetSerializable]
public sealed class ForensicScannerUserMessage : BoundUserInterfaceMessage
public sealed class ForensicScannerBoundUserInterfaceState : BoundUserInterfaceState
{
public readonly List<string> Fingerprints = new();
public readonly List<string> Fibers = new();
public readonly string LastScanned = string.Empty;
public readonly string LastScannedName = string.Empty;
public readonly TimeSpan PrintCooldown = TimeSpan.Zero;
public readonly TimeSpan PrintReadyAt = TimeSpan.Zero;
public ForensicScannerUserMessage(List<string> fingerprints, List<string> fibers, string lastScanned)
public ForensicScannerBoundUserInterfaceState(
List<string> fingerprints,
List<string> fibers,
string lastScannedName,
TimeSpan printCooldown,
TimeSpan printReadyAt)
{
Fingerprints = fingerprints;
Fibers = fibers;
LastScanned = lastScanned;
LastScannedName = lastScannedName;
PrintCooldown = printCooldown;
PrintReadyAt = printReadyAt;
}
}
@@ -27,4 +36,9 @@ namespace Content.Shared.Forensics
public sealed class ForensicScannerPrintMessage : BoundUserInterfaceMessage
{
}
[Serializable, NetSerializable]
public sealed class ForensicScannerClearMessage : BoundUserInterfaceMessage
{
}
}