]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Fixes PDAs dissapearing when inhand (#13966)
authorAJCM-git <60196617+AJCM-git@users.noreply.github.com>
Mon, 6 Feb 2023 19:53:24 +0000 (15:53 -0400)
committerGitHub <noreply@github.com>
Mon, 6 Feb 2023 19:53:24 +0000 (15:53 -0400)
Content.Client/PDA/PDASystem.cs
Content.Shared/PDA/PDAComponent.cs
Resources/Prototypes/Entities/Objects/Devices/pda.yml

index 276f65a3496762399d1413edc5165f7577b9a0c1..37834e0723f260e7d585ab7d8371b4d3c16bdfc5 100644 (file)
@@ -9,6 +9,7 @@ public sealed class PDASystem : SharedPDASystem
     public override void Initialize()
     {
         base.Initialize();
+
         SubscribeLocalEvent<PDAComponent, AppearanceChangeEvent>(OnAppearanceChange);
     }
 
@@ -17,13 +18,26 @@ public sealed class PDASystem : SharedPDASystem
         if (args.Sprite == null)
             return;
 
-        args.Sprite.LayerSetState(PDAVisualLayers.Base, component.State);
         if (_appearance.TryGetData<bool>(uid, UnpoweredFlashlightVisuals.LightOn, out var isFlashlightOn, args.Component))
             args.Sprite.LayerSetVisible(PDAVisualLayers.Flashlight, isFlashlightOn);
 
         if (_appearance.TryGetData<bool>(uid, PDAVisuals.IDCardInserted, out var isCardInserted, args.Component))
             args.Sprite.LayerSetVisible(PDAVisualLayers.IDLight, isCardInserted);
     }
+
+    protected override void OnComponentInit(EntityUid uid, PDAComponent component, ComponentInit args)
+    {
+        base.OnComponentInit(uid, component, args);
+
+        if(!TryComp<SpriteComponent>(uid, out var sprite))
+            return;
+
+        if (component.State != null)
+            sprite.LayerSetState(PDAVisualLayers.Base, component.State);
+
+        sprite.LayerSetVisible(PDAVisualLayers.Flashlight, component.FlashlightOn);
+        sprite.LayerSetVisible(PDAVisualLayers.IDLight, component.IdSlot.StartingItem != null);
+    }
 }
 
 enum PDAVisualLayers : byte
index 4acbcf3582efe7d5d87f2c9ffa8499b806489d9d..1cc1832e85aac8e16ffb61ae555af841599376e4 100644 (file)
@@ -1,11 +1,12 @@
 using Content.Shared.Access.Components;
 using Content.Shared.Containers.ItemSlots;
 using Robust.Shared.Prototypes;
+using Robust.Shared.GameStates;
 using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
 
 namespace Content.Shared.PDA
 {
-    [RegisterComponent]
+    [RegisterComponent, NetworkedComponent]
     public sealed class PDAComponent : Component
     {
         public const string PDAIdSlotId = "PDA-id";
index e2881ef35da32dc120fe158bd2e1b9d6909bf74e..272c96c171d1a9a3589a9b247ce5de4a8b54c485 100644 (file)
@@ -8,9 +8,11 @@
   - type: Appearance
   - type: Sprite
     sprite: Objects/Devices/pda.rsi
+    netsync: false
     layers:
     - map: [ "enum.PDAVisualLayers.Base" ]
-    - map: [ "enum.PDAVisualLayers.Flashlight" ]
+    - state: "light_overlay"
+      map: [ "enum.PDAVisualLayers.Flashlight" ]
       shader: "unshaded"
       visible: false
     - state: "id_overlay"
     state: pda-ce
   - type: PDABorderColor
     borderColor: "#949137"
-    state: pda-ce
     accentHColor: "#447987"
   - type: Icon
     state: pda-ce
     state: pda-ert
   - type: PDABorderColor
     borderColor: "#A32D26"
-    state: pda-ert
     accentHColor: "#447987"
   - type: Icon
     state: pda-ert