Bugfix: Fix floating firelock pressure/temp warning lights (#46007)

* Firelock: temp/pressure layers in the component

* edge firelock too

* simplify

* mm inconsistent spacing
This commit is contained in:
Whatstone 2026-10-05 02:44:27 +00:00 • committed by GitHub
parent 58dae1ce4a
commit 763186613f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 19 additions and 10 deletions

View file

@ -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<bool>(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<bool>(FirelockVisuals.TemperatureWarning, out var temp))
temp = false;
_sprite.LayerSetVisible((ent, args.Sprite), tempLayerIndex, temp && warningLightsVisible);
}
}
}

View file

@ -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: