]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Fix TrayScannerUser (#35959)
authormetalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Mon, 24 Mar 2025 15:35:22 +0000 (02:35 +1100)
committerGitHub <noreply@github.com>
Mon, 24 Mar 2025 15:35:22 +0000 (16:35 +0100)
* Fix TrayScannerUser

* Ignore

* Update Content.Shared/SubFloor/TrayScannerUserComponent.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Content.Shared/SubFloor/SharedTrayScannerSystem.cs
Content.Shared/SubFloor/TrayScannerUserComponent.cs

index 79bfddeccda1221ef0ae6a6a3c715e15be284ac0..9a7c829f1420eaf1490cf60976806bede36568be 100644 (file)
@@ -3,12 +3,14 @@ using Content.Shared.Hands;
 using Content.Shared.Interaction;
 using Content.Shared.Inventory.Events;
 using Robust.Shared.GameStates;
+using Robust.Shared.Network;
 using Robust.Shared.Serialization;
 
 namespace Content.Shared.SubFloor;
 
 public abstract class SharedTrayScannerSystem : EntitySystem
 {
+    [Dependency] private readonly INetManager _netMan = default!;
     [Dependency] private readonly SharedAppearanceSystem _appearance = default!;
     [Dependency] private readonly SharedEyeSystem _eye = default!;
 
@@ -37,12 +39,31 @@ public abstract class SharedTrayScannerSystem : EntitySystem
 
     private void OnEquip(EntityUid user)
     {
-        EnsureComp<TrayScannerUserComponent>(user);
+        if (_netMan.IsClient)
+            return;
+
+        var comp = EnsureComp<TrayScannerUserComponent>(user);
+        comp.Count++;
+
+        if (comp.Count > 1)
+            return;
+
         _eye.RefreshVisibilityMask(user);
     }
 
     private void OnUnequip(EntityUid user)
     {
+        if (_netMan.IsClient)
+            return;
+
+        if (!TryComp(user, out TrayScannerUserComponent? comp))
+            return;
+
+        comp.Count--;
+
+        if (comp.Count > 0)
+            return;
+
         RemComp<TrayScannerUserComponent>(user);
         _eye.RefreshVisibilityMask(user);
     }
index f97046c03a9af2c7a89c9fedc46c85f3bf07802b..e55b5ea58e2ff3d63dd7d1bbc452e02f59bab122 100644 (file)
@@ -5,4 +5,11 @@ namespace Content.Shared.SubFloor;
 /// Added to anyone using <see cref="TrayScannerComponent"/> to handle the vismask changes.
 /// </summary>
 [RegisterComponent]
-public sealed partial class TrayScannerUserComponent : Component;
+public sealed partial class TrayScannerUserComponent : Component
+{
+    /// <summary>
+    /// How many t-rays the user is currently using.
+    /// </summary>
+    [DataField]
+    public int Count;
+}