From 763186613f196824f010bba663d353e4cce8f3ea Mon Sep 17 00:00:00 2001 From: Whatstone <166147148+whatston3@users.noreply.github.com> Date: Mon, 5 Oct 2026 02:44:27 +0000 Subject: [PATCH] Bugfix: Fix floating firelock pressure/temp warning lights (#46007) * Firelock: temp/pressure layers in the component * edge firelock too * simplify * mm inconsistent spacing --- Content.Client/Doors/FirelockSystem.cs | 19 +++++++++++++++++++ .../Structures/Doors/Firelocks/firelock.yml | 10 ---------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/Content.Client/Doors/FirelockSystem.cs b/Content.Client/Doors/FirelockSystem.cs index 911d40b15c..dec91d1234 100644 --- a/Content.Client/Doors/FirelockSystem.cs +++ b/Content.Client/Doors/FirelockSystem.cs @@ -85,5 +85,24 @@ public sealed partial class FirelockSystem : SharedFirelockSystem if (_sprite.LayerMapTryGet((ent, args.Sprite), DoorVisualLayers.BaseBolted, out var boltedLayer, logMissing: false)) _sprite.LayerSetVisible((ent, args.Sprite), boltedLayer, boltedVisible); + + var warningLightsVisible = + state == DoorState.Closed + || state == DoorState.Welded + || state == DoorState.Denying; + + if (_sprite.LayerMapTryGet((ent, args.Sprite), FirelockVisualLayersPressure.Base, out var pressureLayerIndex, logMissing: false)) + { + if (!args.TryGetData(FirelockVisuals.PressureWarning, out var pressure)) + pressure = false; + _sprite.LayerSetVisible((ent, args.Sprite), pressureLayerIndex, pressure && warningLightsVisible); + } + + if (_sprite.LayerMapTryGet((ent, args.Sprite), FirelockVisualLayersTemperature.Base, out var tempLayerIndex, logMissing: false)) + { + if (!args.TryGetData(FirelockVisuals.TemperatureWarning, out var temp)) + temp = false; + _sprite.LayerSetVisible((ent, args.Sprite), tempLayerIndex, temp && warningLightsVisible); + } } } diff --git a/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml b/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml index 838fa6151c..eb67ec4447 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml @@ -67,16 +67,6 @@ shader: unshaded sprite: Structures/Doors/Airlocks/Effects/airlock-effects-firelock.rsi map: ["enum.FirelockVisualLayersTemperature.Base"] - - type: GenericVisualizer - visuals: - enum.FirelockVisuals.PressureWarning: - enum.FirelockVisualLayersPressure.Base: - True: { visible: true } - False: { visible: false } - enum.FirelockVisuals.TemperatureWarning: - enum.FirelockVisualLayersTemperature.Base: - True: { visible: true } - False: { visible: false } - type: AnimationPlayer - type: Fixtures fixtures: