]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Make firelock warning light not require power and add a PointLight (#29024)
authorShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Sat, 15 Jun 2024 15:17:16 +0000 (08:17 -0700)
committerGitHub <noreply@github.com>
Sat, 15 Jun 2024 15:17:16 +0000 (11:17 -0400)
* Add a PointLight to firelocks when warnings are active

* Remove power requirement for lights

Content.Client/Doors/FirelockSystem.cs
Content.Server/Doors/Systems/FirelockSystem.cs
Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml

index f64b4c8e5222e5fe6ec794f0d5687e1a23e100d4..ad869391f4b81f468bf7195aa94a605608973a98 100644 (file)
@@ -25,15 +25,12 @@ public sealed class FirelockSystem : SharedFirelockSystem
         if (!_appearanceSystem.TryGetData<DoorState>(uid, DoorVisuals.State, out var state, args.Component))
             state = DoorState.Closed;
 
-        if (_appearanceSystem.TryGetData<bool>(uid, DoorVisuals.Powered, out var powered, args.Component) && powered)
-        {
-            boltedVisible = _appearanceSystem.TryGetData<bool>(uid, DoorVisuals.BoltLights, out var lights, args.Component) && lights;
-            unlitVisible =
-                state == DoorState.Closing
-                ||  state == DoorState.Opening
-                ||  state == DoorState.Denying
-                || (_appearanceSystem.TryGetData<bool>(uid, DoorVisuals.ClosedLights, out var closedLights, args.Component) && closedLights);
-        }
+        boltedVisible = _appearanceSystem.TryGetData<bool>(uid, DoorVisuals.BoltLights, out var lights, args.Component) && lights;
+        unlitVisible =
+            state == DoorState.Closing
+            ||  state == DoorState.Opening
+            ||  state == DoorState.Denying
+            || (_appearanceSystem.TryGetData<bool>(uid, DoorVisuals.ClosedLights, out var closedLights, args.Component) && closedLights);
 
         args.Sprite.LayerSetVisible(DoorVisualLayers.BaseUnlit, unlitVisible && !boltedVisible);
         args.Sprite.LayerSetVisible(DoorVisualLayers.BaseBolted, boltedVisible);
index c7da404fe880a1f13e16af337b056a654bcd8a50..7cb31b5b4e05776fca2c955f89688b4607468ea1 100644 (file)
@@ -6,9 +6,9 @@ using Content.Server.Power.EntitySystems;
 using Content.Server.Shuttles.Components;
 using Content.Shared.Atmos;
 using Content.Shared.Atmos.Monitor;
-using Content.Shared.Doors;
 using Content.Shared.Doors.Components;
 using Content.Shared.Doors.Systems;
+using Robust.Server.GameObjects;
 using Robust.Shared.Map.Components;
 
 namespace Content.Server.Doors.Systems
@@ -20,6 +20,7 @@ namespace Content.Server.Doors.Systems
         [Dependency] private readonly AtmosphereSystem _atmosSystem = default!;
         [Dependency] private readonly SharedAppearanceSystem _appearance = default!;
         [Dependency] private readonly SharedMapSystem _mapping = default!;
+        [Dependency] private readonly PointLightSystem _pointLight = default!;
 
         private const int UpdateInterval = 30;
         private int _accumulatedTicks;
@@ -53,6 +54,7 @@ namespace Content.Server.Doors.Systems
             var airtightQuery = GetEntityQuery<AirtightComponent>();
             var appearanceQuery = GetEntityQuery<AppearanceComponent>();
             var xformQuery = GetEntityQuery<TransformComponent>();
+            var pointLightQuery = GetEntityQuery<PointLightComponent>();
 
             var query = EntityQueryEnumerator<FirelockComponent, DoorComponent>();
             while (query.MoveNext(out var uid, out var firelock, out var door))
@@ -74,6 +76,11 @@ namespace Content.Server.Doors.Systems
                     firelock.Temperature = fire;
                     firelock.Pressure = pressure;
                     Dirty(uid, firelock);
+
+                    if (pointLightQuery.TryComp(uid, out var pointLight))
+                    {
+                        _pointLight.SetEnabled(uid, fire | pressure, pointLight);
+                    }
                 }
             }
         }
index d6815abcdc6a2bd950123ee65469d1a12cc7ca1d..e4b2424301189d6104f49d956102d62b5ceec9cc 100644 (file)
       access: [ [ "Engineering" ] ]
     - type: PryUnpowered
       pryModifier: 0.5
+    - type: PointLight
+      energy: 0.5
+      radius: 1.75
+      color: Red
+      enabled: false
+      castShadows: false
 
 - type: entity
   id: Firelock