Forensics QOL (Autolabeling of pads and reports) (#9610)

This commit is contained in:
Rane
2022-07-10 20:52:54 -04:00
committed by GitHub
parent f88104ed4f
commit 2225ec2e1a
5 changed files with 22 additions and 9 deletions

View File

@@ -100,6 +100,11 @@ namespace Content.Server.Forensics
if (!EntityManager.TryGetComponent(ev.Pad, out ForensicPadComponent? component))
return;
if (HasComp<FingerprintComponent>(ev.Target))
MetaData(component.Owner).EntityName = Loc.GetString("forensic-pad-fingerprint-name", ("entity", ev.Target));
else
MetaData(component.Owner).EntityName = Loc.GetString("forensic-pad-gloves-name", ("entity", ev.Target));
component.CancelToken = null;
component.Sample = ev.Sample;
component.Used = true;
@@ -124,11 +129,11 @@ namespace Content.Server.Forensics
private sealed class TargetPadSuccessfulEvent : EntityEventArgs
{
public EntityUid User;
public EntityUid? Target;
public EntityUid Target;
public EntityUid Pad;
public string Sample = string.Empty;
public TargetPadSuccessfulEvent(EntityUid user, EntityUid? target, EntityUid pad, string sample)
public TargetPadSuccessfulEvent(EntityUid user, EntityUid target, EntityUid pad, string sample)
{
User = user;
Target = target;

View File

@@ -51,6 +51,7 @@ namespace Content.Server.Forensics
scanner.Fingerprints = forensics.Fingerprints.ToList();
scanner.Fibers = forensics.Fibers.ToList();
scanner.LastScanned = MetaData(ev.Target).EntityName;
OpenUserInterface(ev.User, scanner);
}
@@ -62,7 +63,7 @@ namespace Content.Server.Forensics
component.CancelToken = new CancellationTokenSource();
_doAfterSystem.DoAfter(new DoAfterEventArgs(args.User, component.ScanDelay, component.CancelToken.Token, target: args.Target)
{
BroadcastFinishedEvent = new TargetScanSuccessfulEvent(args.User, args.Target, component.Owner),
BroadcastFinishedEvent = new TargetScanSuccessfulEvent(args.User, (EntityUid) args.Target, component.Owner),
BroadcastCancelledEvent = new ScanCancelledEvent(component.Owner),
BreakOnTargetMove = true,
BreakOnUserMove = true,
@@ -110,7 +111,7 @@ namespace Content.Server.Forensics
var ui = _uiSystem.GetUi(component.Owner, ForensicScannerUiKey.Key);
ui.Open(actor.PlayerSession);
ui.SendMessage(new ForensicScannerUserMessage(component.Fingerprints, component.Fibers));
ui.SendMessage(new ForensicScannerUserMessage(component.Fingerprints, component.Fibers, component.LastScanned));
}
private void OnPrint(EntityUid uid, ForensicScannerComponent component, ForensicScannerPrintMessage args)
@@ -124,7 +125,7 @@ namespace Content.Server.Forensics
if (!TryComp<PaperComponent>(printed, out var paper))
return;
MetaData(printed).EntityName = Loc.GetString("forensic-scanner-report-title");
MetaData(printed).EntityName = Loc.GetString("forensic-scanner-report-title", ("entity", component.LastScanned));
var text = new StringBuilder();
@@ -156,9 +157,9 @@ namespace Content.Server.Forensics
private sealed class TargetScanSuccessfulEvent : EntityEventArgs
{
public EntityUid User;
public EntityUid? Target;
public EntityUid Target;
public EntityUid Scanner;
public TargetScanSuccessfulEvent(EntityUid user, EntityUid? target, EntityUid scanner)
public TargetScanSuccessfulEvent(EntityUid user, EntityUid target, EntityUid scanner)
{
User = user;
Target = target;