Skip to content
Open
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
8b32741
What sitting on code does to a branch + no mo owner v2
Prole0 Oct 4, 2025
4eced39
Replacing ViewVariables with AutoNetworkedField + Missed One V2
Prole0 Oct 4, 2025
40df4aa
Removing Virtual Methods & Renaming ForensicsSystem to SharedForensic…
Prole0 Oct 4, 2025
e848c89
IProduceWidgets Review Changes & some of my own V2
Prole0 Oct 4, 2025
af89f96
Lil Cleanup V2
Prole0 Oct 4, 2025
6bc4ce4
Part 1 of Review Changes (Only thing left is the BUI stuff and the co…
Prole0 Oct 4, 2025
8cbfe61
It now WORKS!!! (Still needs the BUI and constuctor changes, ill figu…
Prole0 Oct 4, 2025
a18f325
Test (Removal of ServerSide VomitSystem.cs)
Prole0 Oct 4, 2025
64ac75f
Merge branch 'space-wizards:master' into Predict-Forensics-2.0
Prole0 Oct 4, 2025
4f8a4f8
Ok...
Prole0 Oct 4, 2025
5d7b876
Moved System BloodstreamSystem.cs to SharedBloodstreamSystem.cs & del…
Prole0 Oct 6, 2025
2392e97
Prediction
Prole0 Oct 6, 2025
8134052
Fix?
Prole0 Oct 7, 2025
50c15a3
No mo log error?
Prole0 Oct 7, 2025
1dbe3e1
Revert "No mo log error?"
Prole0 Oct 7, 2025
b9868c9
Constructor going up
Prole0 Oct 8, 2025
3a0b774
No ForensicScannerBoundUserInterface.cs (It doesnt wanna scan anymore…
Prole0 Oct 10, 2025
b15cf95
For Conflicts
Prole0 Oct 12, 2025
af48f5a
Guh
Prole0 Oct 12, 2025
7c6714d
Merge branch 'space-wizards:master' into Predict-Forensics-2.0
Prole0 Oct 12, 2025
a10bbb0
Yea
Prole0 Oct 12, 2025
5de2c5e
Organization & no ErrorHell (maybe)
Prole0 Oct 13, 2025
57a3ca0
Dirtying
Prole0 Oct 13, 2025
5735012
Dirtying take 2
Prole0 Oct 13, 2025
3354c91
Revert "Dirtying take 2"
Prole0 Oct 13, 2025
5e83d9a
the dirties dont do much here
Prole0 Oct 16, 2025
a6258a7
Merge branch 'space-wizards:master' into Predict-Forensics-2.0
Prole0 Oct 16, 2025
33457d7
For Conflict
Prole0 Oct 22, 2025
60bb6e1
Merge branch 'space-wizards:master' into Predict-Forensics-2.0
Prole0 Oct 22, 2025
34d5875
Readded
Prole0 Oct 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 2 additions & 20 deletions Content.Client/Forensics/ForensicScannerBoundUserInterface.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,24 +29,15 @@ protected override void Open()

private void Print()
{
SendMessage(new ForensicScannerPrintMessage());
SendPredictedMessage(new ForensicScannerPrintMessage());

if (_window != null)
_window.UpdatePrinterState(true);

// This UI does not require pinpoint accuracy as to when the Print
// button is available again, so spawning client-side timers is
// fine. The server will make sure the cooldown is honored.
Timer.Spawn(_printCooldown, () =>
{
if (_window != null)
_window.UpdatePrinterState(false);
});
}

private void Clear()
{
SendMessage(new ForensicScannerClearMessage());
SendPredictedMessage(new ForensicScannerClearMessage());
}

protected override void UpdateState(BoundUserInterfaceState state)
Expand All @@ -60,15 +51,6 @@ protected override void UpdateState(BoundUserInterfaceState state)
return;

_printCooldown = cast.PrintCooldown;

// TODO: Fix this
if (cast.PrintReadyAt > _gameTiming.CurTime)
Timer.Spawn(cast.PrintReadyAt - _gameTiming.CurTime, () =>
{
if (_window != null)
_window.UpdatePrinterState(false);
});

_window.UpdateState(cast);
}
}
Expand Down
4 changes: 2 additions & 2 deletions Content.Client/Forensics/ForensicScannerMenu.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,13 @@ public void UpdateState(ForensicScannerBoundUserInterfaceState msg)
}
text.AppendLine();
text.AppendLine(Loc.GetString("forensic-scanner-interface-dnas"));
foreach (var dna in msg.TouchDNAs)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See the comment on the BUI message.
Just send the uid and use a TryComp here to get these.

Right here

foreach (var dna in msg.Dnas)
{
text.AppendLine(dna);
}
foreach (var dna in msg.SolutionDNAs)
{
if (msg.TouchDNAs.Contains(dna))
if (msg.Dnas.Contains(dna))
continue;
text.AppendLine(dna);
}
Expand Down
5 changes: 0 additions & 5 deletions Content.Client/Forensics/Systems/ForensicsSystem.cs

This file was deleted.

1 change: 0 additions & 1 deletion Content.Server/Body/Systems/BloodstreamSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ private void OnComponentInit(Entity<BloodstreamComponent> entity, ref ComponentI
bloodSolution.AddReagent(new ReagentId(entity.Comp.BloodReagent, GetEntityBloodData(entity.Owner)), entity.Comp.BloodMaxVolume - bloodSolution.Volume);
}

// forensics is not predicted yet
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Simply removing the code comment does not address the networking issue I mentioned. This needs to be moved to shared and the changed DnaData needs to be dirtied to make sure it is networked to other clients.
So you will have to look into how reagent data is networked. And please test this with multiple clients and the VV window to make sure it works as intended.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm getting this error when I move server-side bloodstream to its shared counterpart.

[FATL] unhandled: Robust.Shared.IoC.Exceptions.UnregisteredDependencyException: Content.Shared.Medical.VomitSystem requested unregistered type with its field Content.Shared.Body.Systems.SharedBloodstreamSystem: _bloodstream

I got no clue about this, no errors that I see.
Screenshot 2025-10-04 135821

The only thing that VomitSystem uses is GetEntityBloodData, which the newly moved OnComponentInit & OnDnaGenerated also use.
Screenshot 2025-10-04 135922

Screenshot 2025-10-04 135934

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed the error, had to make SharedBloodstreamSystem sealed and delete client side BloodStreamSystem. Everything server side should be on shared & DnaData dirtied too. Visuals below for comparison.

On Master

Master.mp4

With Dirty

With.Dirty.mp4

Without Dirty

Without.Dirty.mp4

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Screenshot 2025-10-13 215142

The error message is coming from here, idk what im missing here to get it to go away.

1) CLIENT: 0.773s [ERRO] system.blood_stream: Unable to set bloodstream DNA, solution entity could not be resolved Exception:

private void OnDnaGenerated(Entity<BloodstreamComponent> entity, ref GenerateDnaEvent args)
{
if (SolutionContainer.ResolveSolution(entity.Owner, entity.Comp.BloodSolutionName, ref entity.Comp.BloodSolution, out var bloodSolution))
Expand Down
5 changes: 3 additions & 2 deletions Content.Server/Cloning/CloningSystem.Subscriptions.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
using Content.Server.Forensics;
using Content.Server.Speech.EntitySystems;
using Content.Shared.Cloning.Events;
using Content.Shared.FixedPoint;
using Content.Shared.Forensics.Components;
using Content.Shared.Forensics.Systems;
using Content.Shared.Inventory;
using Content.Shared.Labels.Components;
using Content.Shared.Labels.EntitySystems;
Expand Down Expand Up @@ -82,7 +83,7 @@ private void OnCloneItemPaper(Entity<PaperComponent> ent, ref CloningItemEvent a
private void OnCloneItemForensics(Entity<ForensicsComponent> ent, ref CloningItemEvent args)
{
// copy any forensics to the cloned item
_forensics.CopyForensicsFrom(ent.Comp, args.CloneUid);
_forensics.CopyForensicsFrom(ent.Owner, args.CloneUid);
}

private void OnCloneItemStore(Entity<StoreComponent> ent, ref CloningItemEvent args)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
using System.Numerics;
using Content.Server.Forensics;
using Content.Server.Stack;
using Content.Shared.Destructible.Thresholds;
using Content.Shared.Forensics.Components;
using Content.Shared.Prototypes;
using Content.Shared.Stacks;
using Robust.Server.GameObjects;
Expand Down
15 changes: 0 additions & 15 deletions Content.Server/Forensics/Components/ForensicPadComponent.cs

This file was deleted.

97 changes: 0 additions & 97 deletions Content.Server/Forensics/Components/ForensicScannerComponent.cs

This file was deleted.

31 changes: 0 additions & 31 deletions Content.Server/Forensics/Components/ForensicsComponent.cs

This file was deleted.

15 changes: 0 additions & 15 deletions Content.Server/Forensics/Components/ResidueComponent.cs

This file was deleted.

Loading
Loading