* Port forensics from nyanotrasen

* port updates

* printing

* Update Resources/Locale/en-US/forensics/forensics.ftl

Co-authored-by: Veritius <veritiusgaming@gmail.com>

* Update Content.Server/Forensics/Components/ForensicPadComponent.cs

Co-authored-by: Kara <lunarautomaton6@gmail.com>

* Update Content.Server/Forensics/Systems/ForensicPadSystem.cs

Co-authored-by: Kara <lunarautomaton6@gmail.com>

* Update Content.Server/Forensics/Systems/ForensicScannerSystem.cs

Co-authored-by: Kara <lunarautomaton6@gmail.com>

* partially address reviews

* comments

* redo the events

* handle it

* rewrite loc

* master fixes

Co-authored-by: ike709 <ike709@github.com>
Co-authored-by: Veritius <veritiusgaming@gmail.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
This commit is contained in:
ike709
2022-06-27 20:04:53 -05:00
committed by GitHub
parent 8b0e8915a8
commit d770eb6a35
30 changed files with 859 additions and 3 deletions

View File

@@ -0,0 +1,40 @@
using Content.Shared.Forensics;
using Robust.Client.GameObjects;
namespace Content.Client.Forensics
{
public sealed class ForensicScannerBoundUserInterface : BoundUserInterface
{
private ForensicScannerMenu? _window;
public ForensicScannerBoundUserInterface(ClientUserInterfaceComponent owner, object uiKey) : base(owner, uiKey)
{
}
protected override void Open()
{
base.Open();
_window = new ForensicScannerMenu();
_window.OnClose += Close;
_window.Print.OnPressed += _ => Print();
_window.OpenCentered();
}
private void Print()
{
SendMessage(new ForensicScannerPrintMessage());
_window?.Close();
}
protected override void ReceiveMessage(BoundUserInterfaceMessage message)
{
if (_window == null)
return;
if (message is not ForensicScannerUserMessage cast)
return;
_window.Populate(cast);
}
}
}

View File

@@ -0,0 +1,14 @@
<DefaultWindow xmlns="https://spacestation14.io"
Title="{Loc 'forensic-scanner-interface-title'}"
MinSize="250 100"
SetSize="250 100">
<BoxContainer Orientation="Vertical">
<Button Name="Print"
Access="Public"
Disabled="True"
Text="{Loc 'forensic-scanner-interface-print'}" />
<Label
Name="Diagnostics"
Text="{Loc forensic-scanner-interface-no-data}"/>
</BoxContainer>
</DefaultWindow>

View File

@@ -0,0 +1,37 @@
using System.Text;
using Content.Shared.Forensics;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML;
namespace Content.Client.Forensics
{
[GenerateTypedNameReferences]
public sealed partial class ForensicScannerMenu : DefaultWindow
{
public ForensicScannerMenu()
{
RobustXamlLoader.Load(this);
}
public void Populate(ForensicScannerUserMessage msg)
{
Print.Disabled = false;
var text = new StringBuilder();
text.AppendLine(Loc.GetString("forensic-scanner-interface-fingerprints"));
foreach (var fingerprint in msg.Fingerprints)
{
text.AppendLine(fingerprint);
}
text.AppendLine();
text.AppendLine(Loc.GetString("forensic-scanner-interface-fibers"));
foreach (var fiber in msg.Fibers)
{
text.AppendLine(fiber);
}
Diagnostics.Text = text.ToString();
SetSize = (350, 600);
}
}
}