From d770eb6a359148731242e1060118ab3f27d404c6 Mon Sep 17 00:00:00 2001 From: ike709 Date: Mon, 27 Jun 2022 20:04:53 -0500 Subject: [PATCH] Forensics (#8451) * Port forensics from nyanotrasen * port updates * printing * Update Resources/Locale/en-US/forensics/forensics.ftl Co-authored-by: Veritius * Update Content.Server/Forensics/Components/ForensicPadComponent.cs Co-authored-by: Kara * Update Content.Server/Forensics/Systems/ForensicPadSystem.cs Co-authored-by: Kara * Update Content.Server/Forensics/Systems/ForensicScannerSystem.cs Co-authored-by: Kara * partially address reviews * comments * redo the events * handle it * rewrite loc * master fixes Co-authored-by: ike709 Co-authored-by: Veritius Co-authored-by: Kara --- .../ForensicScannerBoundUserInterface.cs | 40 +++++ .../Forensics/ForensicScannerMenu.xaml | 14 ++ .../Forensics/ForensicScannerMenu.xaml.cs | 37 ++++ .../Forensics/Components/FiberComponent.cs | 16 ++ .../Components/FingerprintComponent.cs | 12 ++ .../Components/FingerprintMaskComponent.cs | 10 ++ .../Components/ForensicPadComponent.cs | 19 ++ .../Components/ForensicScannerComponent.cs | 27 +++ .../Components/ForensicsComponent.cs | 12 ++ .../Forensics/Systems/ForensicPadSystem.cs | 140 +++++++++++++++ .../Systems/ForensicScannerSystem.cs | 169 ++++++++++++++++++ .../Forensics/Systems/ForensicsSystem.cs | 49 +++++ .../ActionBlocker/ActionBlockerSystem.cs | 13 ++ .../Forensics/ForensicScannerEvent.cs | 28 +++ .../Item/UserInteractedWithItemEvent.cs | 17 ++ Resources/Locale/en-US/forensics/fibers.ftl | 22 +++ .../Locale/en-US/forensics/forensics.ftl | 15 ++ .../Fills/Backpacks/StarterGear/backpack.yml | 13 ++ .../Fills/Backpacks/StarterGear/duffelbag.yml | 14 ++ .../Fills/Backpacks/StarterGear/satchel.yml | 13 ++ .../Catalog/Fills/Boxes/security.yml | 14 ++ .../Catalog/Fills/Lockers/security.yml | 2 + .../Entities/Clothing/Hands/colored.yml | 48 +++++ .../Entities/Clothing/Hands/gloves.yml | 57 +++++- .../Entities/Mobs/Species/human.yml | 1 + .../Objects/Devices/forensic_scanner.yml | 23 +++ .../Objects/Specific/Forensics/forensics.yml | 15 ++ .../Prototypes/Entities/Objects/base_item.yml | 1 + .../forensic_scanner.rsi/forensicnew.png | Bin 0 -> 736 bytes .../Devices/forensic_scanner.rsi/meta.json | 21 +++ 30 files changed, 859 insertions(+), 3 deletions(-) create mode 100644 Content.Client/Forensics/ForensicScannerBoundUserInterface.cs create mode 100644 Content.Client/Forensics/ForensicScannerMenu.xaml create mode 100644 Content.Client/Forensics/ForensicScannerMenu.xaml.cs create mode 100644 Content.Server/Forensics/Components/FiberComponent.cs create mode 100644 Content.Server/Forensics/Components/FingerprintComponent.cs create mode 100644 Content.Server/Forensics/Components/FingerprintMaskComponent.cs create mode 100644 Content.Server/Forensics/Components/ForensicPadComponent.cs create mode 100644 Content.Server/Forensics/Components/ForensicScannerComponent.cs create mode 100644 Content.Server/Forensics/Components/ForensicsComponent.cs create mode 100644 Content.Server/Forensics/Systems/ForensicPadSystem.cs create mode 100644 Content.Server/Forensics/Systems/ForensicScannerSystem.cs create mode 100644 Content.Server/Forensics/Systems/ForensicsSystem.cs create mode 100644 Content.Shared/Forensics/ForensicScannerEvent.cs create mode 100644 Content.Shared/Item/UserInteractedWithItemEvent.cs create mode 100644 Resources/Locale/en-US/forensics/fibers.ftl create mode 100644 Resources/Locale/en-US/forensics/forensics.ftl create mode 100644 Resources/Prototypes/Entities/Objects/Devices/forensic_scanner.yml create mode 100644 Resources/Prototypes/Entities/Objects/Specific/Forensics/forensics.yml create mode 100644 Resources/Textures/Objects/Devices/forensic_scanner.rsi/forensicnew.png create mode 100644 Resources/Textures/Objects/Devices/forensic_scanner.rsi/meta.json diff --git a/Content.Client/Forensics/ForensicScannerBoundUserInterface.cs b/Content.Client/Forensics/ForensicScannerBoundUserInterface.cs new file mode 100644 index 0000000000..c5d3f15659 --- /dev/null +++ b/Content.Client/Forensics/ForensicScannerBoundUserInterface.cs @@ -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); + } + } +} diff --git a/Content.Client/Forensics/ForensicScannerMenu.xaml b/Content.Client/Forensics/ForensicScannerMenu.xaml new file mode 100644 index 0000000000..b3bfff7771 --- /dev/null +++ b/Content.Client/Forensics/ForensicScannerMenu.xaml @@ -0,0 +1,14 @@ + + +