diff --git a/Content.Client/Doors/AirlockVisualizer.cs b/Content.Client/Doors/AirlockVisualizer.cs index 7e5fd8eb57..c85d695568 100644 --- a/Content.Client/Doors/AirlockVisualizer.cs +++ b/Content.Client/Doors/AirlockVisualizer.cs @@ -46,6 +46,12 @@ namespace Content.Client.Doors [DataField("openUnlitVisible")] private bool _openUnlitVisible = false; + /// + /// Whether the door should have an emergency access layer + /// + [DataField("emergencyAccessLayer")] + private bool _emergencyAccessLayer = true; + private Animation CloseAnimation = default!; private Animation OpenAnimation = default!; private Animation DenyAnimation = default!; @@ -141,6 +147,7 @@ namespace Content.Client.Doors var unlitVisible = true; var boltedVisible = false; var weldedVisible = false; + var emergencyLightsVisible = false; if (animPlayer.HasRunningAnimation(AnimationKey)) { @@ -192,11 +199,25 @@ namespace Content.Client.Doors boltedVisible = true; } + if (component.TryGetData(DoorVisuals.EmergencyLights, out bool eaLights) && eaLights) + { + emergencyLightsVisible = true; + } + if (!_simpleVisuals) { sprite.LayerSetVisible(DoorVisualLayers.BaseUnlit, unlitVisible && state != DoorState.Closed && state != DoorState.Welded); sprite.LayerSetVisible(DoorVisualLayers.BaseWelded, weldedVisible); sprite.LayerSetVisible(DoorVisualLayers.BaseBolted, unlitVisible && boltedVisible); + if (_emergencyAccessLayer) + { + sprite.LayerSetVisible(DoorVisualLayers.BaseEmergencyAccess, + emergencyLightsVisible + && state != DoorState.Open + && state != DoorState.Opening + && state != DoorState.Closing + && unlitVisible); + } } } } @@ -207,5 +228,6 @@ namespace Content.Client.Doors BaseUnlit, BaseWelded, BaseBolted, + BaseEmergencyAccess, } } diff --git a/Content.Server/Doors/Systems/DoorSystem.cs b/Content.Server/Doors/Systems/DoorSystem.cs index dad43ed0db..b58f99d71f 100644 --- a/Content.Server/Doors/Systems/DoorSystem.cs +++ b/Content.Server/Doors/Systems/DoorSystem.cs @@ -5,6 +5,7 @@ using Content.Server.Construction; using Content.Server.Construction.Components; using Content.Server.Tools; using Content.Server.Tools.Components; +using Content.Server.Doors.Components; using Content.Shared.Access.Components; using Content.Shared.Access.Systems; using Content.Shared.Doors; @@ -48,8 +49,8 @@ public sealed class DoorSystem : SharedDoorSystem base.OnInit(uid, door, args); if (door.State == DoorState.Open - && door.ChangeAirtight - && TryComp(uid, out AirtightComponent? airtight)) + && door.ChangeAirtight + && TryComp(uid, out AirtightComponent? airtight)) { _airtightSystem.SetAirblocked(airtight, false); } @@ -96,7 +97,7 @@ public sealed class DoorSystem : SharedDoorSystem SoundSystem.Play(filter, sound, uid, audioParams); } - #region DoAfters +#region DoAfters /// /// Weld or pry open a door. /// @@ -136,7 +137,7 @@ public sealed class DoorSystem : SharedDoorSystem // perform a do-after delay door.BeingWelded = true; _toolSystem.UseTool(used, user, target, 3f, 3f, door.WeldingQuality, - new WeldFinishedEvent(), new WeldCancelledEvent(), target); + new WeldFinishedEvent(), new WeldCancelledEvent(), target); return true; // we might not actually succeeded, but a do-after has started } @@ -196,7 +197,7 @@ public sealed class DoorSystem : SharedDoorSystem else if (door.State == DoorState.Open) StartClosing(uid, door); } - #endregion +#endregion /// /// Does the user have the permissions required to open this door? @@ -209,6 +210,10 @@ public sealed class DoorSystem : SharedDoorSystem if (user == null || AccessType == AccessTypes.AllowAll) return true; + // If the door is on emergency access we skip the checks. + if (TryComp(uid, out var airlock) && airlock.EmergencyAccess) + return true; + if (!Resolve(uid, ref access, false)) return true; @@ -289,17 +294,17 @@ public sealed class DoorSystem : SharedDoorSystem var container = uid.EnsureContainer("board", out var existed); /* // TODO ShadowCommander: Re-enable when access is added to boards. Requires map update. - if (existed) - { - // We already contain a board. Note: We don't check if it's the right one! - if (container.ContainedEntities.Count != 0) - return; + if (existed) + { + // We already contain a board. Note: We don't check if it's the right one! + if (container.ContainedEntities.Count != 0) + return; } var board = Owner.EntityManager.SpawnEntity(_boardPrototype, Owner.Transform.Coordinates); if(!container.Insert(board)) - Logger.Warning($"Couldn't insert board {board} into door {Owner}!"); + Logger.Warning($"Couldn't insert board {board} into door {Owner}!"); */ } } diff --git a/Content.Server/Remotes/DoorRemoteComponent.cs b/Content.Server/Remotes/DoorRemoteComponent.cs index e4a78ce176..b39781efff 100644 --- a/Content.Server/Remotes/DoorRemoteComponent.cs +++ b/Content.Server/Remotes/DoorRemoteComponent.cs @@ -14,8 +14,8 @@ namespace Content.Server.Remotes public enum OperatingMode : byte { OpenClose, - ToggleBolts - // ToggleEmergencyAccess + ToggleBolts, + ToggleEmergencyAccess } } } diff --git a/Content.Server/Remotes/DoorRemoteSystem.cs b/Content.Server/Remotes/DoorRemoteSystem.cs index f2c2b23b4f..eda09bd27c 100644 --- a/Content.Server/Remotes/DoorRemoteSystem.cs +++ b/Content.Server/Remotes/DoorRemoteSystem.cs @@ -20,6 +20,7 @@ namespace Content.Server.Remotes [Dependency] private readonly SharedDoorSystem _sharedDoorSystem = default!; [Dependency] private readonly DoorSystem _doorSystem = default!; [Dependency] private readonly SharedInteractionSystem _interactionSystem = default!; + [Dependency] private readonly SharedAirlockSystem _sharedAirlockSystem = default!; public override void Initialize() { @@ -38,15 +39,13 @@ namespace Content.Server.Remotes _popupSystem.PopupEntity(Loc.GetString("door-remote-switch-state-toggle-bolts"), args.User, Filter.Entities(args.User)); break; case DoorRemoteComponent.OperatingMode.ToggleBolts: - component.Mode = DoorRemoteComponent.OperatingMode.OpenClose; // TODO: Swítch to ToggleEmergencyAcces when EA is implemented - _popupSystem.PopupEntity(Loc.GetString("door-remote-switch-state-open-close"), args.User, Filter.Entities(args.User)); // TODO: See the above comment + component.Mode = DoorRemoteComponent.OperatingMode.ToggleEmergencyAccess; + _popupSystem.PopupEntity(Loc.GetString("door-remote-switch-state-toggle-emergency-access"), args.User, Filter.Entities(args.User)); break; - /* case DoorRemoteComponent.OperatingMode.ToggleEmergencyAccess: component.Mode = DoorRemoteComponent.OperatingMode.OpenClose; _popupSystem.PopupEntity(Loc.GetString("door-remote-switch-state-open-close"), args.User, Filter.Entities(args.User)); break; - */ } } @@ -88,6 +87,15 @@ namespace Content.Server.Remotes } } } + + if (component.Mode == DoorRemoteComponent.OperatingMode.ToggleEmergencyAccess + && airlockComponent.IsPowered()) + { + if (_doorSystem.HasAccess(doorComponent.Owner, args.Used)) + { + _sharedAirlockSystem.ToggleEmergencyAccess(airlockComponent); + } + } } } } diff --git a/Content.Shared/Doors/Components/DoorComponent.cs b/Content.Shared/Doors/Components/DoorComponent.cs index 65e470f017..748bf8058c 100644 --- a/Content.Shared/Doors/Components/DoorComponent.cs +++ b/Content.Shared/Doors/Components/DoorComponent.cs @@ -204,7 +204,8 @@ public enum DoorVisuals { State, Powered, - BoltLights + BoltLights, + EmergencyLights, } [Serializable, NetSerializable] diff --git a/Content.Shared/Doors/Components/SharedAirlockComponent.cs b/Content.Shared/Doors/Components/SharedAirlockComponent.cs index 22e456f643..2e554014ba 100644 --- a/Content.Shared/Doors/Components/SharedAirlockComponent.cs +++ b/Content.Shared/Doors/Components/SharedAirlockComponent.cs @@ -13,6 +13,10 @@ public abstract class SharedAirlockComponent : Component [ViewVariables(VVAccess.ReadWrite)] [DataField("safety")] public bool Safety = true; + + [ViewVariables(VVAccess.ReadWrite)] + [DataField("emergencyAccess")] + public bool EmergencyAccess = false; } [Serializable, NetSerializable] diff --git a/Content.Shared/Doors/Systems/SharedAirlockSystem.cs b/Content.Shared/Doors/Systems/SharedAirlockSystem.cs index 533f23e39f..a6c0e559db 100644 --- a/Content.Shared/Doors/Systems/SharedAirlockSystem.cs +++ b/Content.Shared/Doors/Systems/SharedAirlockSystem.cs @@ -38,4 +38,19 @@ public abstract class SharedAirlockSystem : EntitySystem if (airlock.Safety && DoorSystem.GetColliding(uid).Any()) args.Cancel(); } + + + public void UpdateEmergencyLightStatus(SharedAirlockComponent component) + { + if (TryComp(component.Owner, out var appearanceComponent)) + { + appearanceComponent.SetData(DoorVisuals.EmergencyLights, component.EmergencyAccess); + } + } + + public void ToggleEmergencyAccess(SharedAirlockComponent component) + { + component.EmergencyAccess = !component.EmergencyAccess; + UpdateEmergencyLightStatus(component); + } } diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml index 1c765a3d9b..d836c384e9 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml @@ -19,6 +19,9 @@ - state: bolted_unlit shader: unshaded map: ["enum.DoorVisualLayers.BaseBolted"] + - state: emergency_unlit + map: ["enum.DoorVisualLayers.BaseEmergencyAccess"] + shader: unshaded - state: panel_open map: ["enum.WiresVisualLayers.MaintenancePanel"] - type: Physics diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/shuttle.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/shuttle.yml index 673d358e8d..988c79fd8f 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/shuttle.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/shuttle.yml @@ -20,6 +20,9 @@ - state: bolted_unlit shader: unshaded map: ["enum.DoorVisualLayers.BaseBolted"] + - state: emergency_unlit + shader: unshaded + map: ["enum.DoorVisualLayers.BaseEmergencyAccess"] - state: panel_open map: ["enum.WiresVisualLayers.MaintenancePanel"] - type: Wires diff --git a/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml b/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml index 9dd961e31f..c6b5aea18d 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml @@ -78,6 +78,7 @@ visuals: - type: AirlockVisualizer animationTime: 0.6 + emergencyAccessLayer: false - type: WiresVisualizer - type: Wires BoardName: "Firelock Control" diff --git a/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml b/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml index b3a5e49457..33fe9bf654 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml @@ -34,6 +34,9 @@ - state: bolted_unlit shader: unshaded map: ["enum.DoorVisualLayers.BaseBolted"] + - state: emergency_unlit + shader: unshaded + map: ["enum.DoorVisualLayers.BaseEmergencyAccess"] - state: panel_open map: ["enum.WiresVisualLayers.MaintenancePanel"] - type: ApcPowerReceiver @@ -123,6 +126,9 @@ - state: bolted_unlit shader: unshaded map: [ "enum.DoorVisualLayers.BaseBolted" ] + - state: emergency_unlit + shader: unshaded + map: [ "enum.DoorVisualLayers.BaseEmergencyAccess" ] - state: panel_open map: [ "enum.WiresVisualLayers.MaintenancePanel" ] visible: false diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/basic.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/basic.rsi/emergency_unlit.png new file mode 100644 index 0000000000..817f2fb3f9 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Glass/basic.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/basic.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Glass/basic.rsi/meta.json index 01a3cdf00c..588d48b46e 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Glass/basic.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Glass/basic.rsi/meta.json @@ -181,6 +181,15 @@ }, { "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/cargo.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/cargo.rsi/emergency_unlit.png new file mode 100644 index 0000000000..817f2fb3f9 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Glass/cargo.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/cargo.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Glass/cargo.rsi/meta.json index 01a3cdf00c..588d48b46e 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Glass/cargo.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Glass/cargo.rsi/meta.json @@ -181,6 +181,15 @@ }, { "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/command.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/command.rsi/emergency_unlit.png new file mode 100644 index 0000000000..817f2fb3f9 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Glass/command.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/command.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Glass/command.rsi/meta.json index 01a3cdf00c..588d48b46e 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Glass/command.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Glass/command.rsi/meta.json @@ -181,6 +181,15 @@ }, { "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/engineering.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/engineering.rsi/emergency_unlit.png new file mode 100644 index 0000000000..817f2fb3f9 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Glass/engineering.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/engineering.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Glass/engineering.rsi/meta.json index 01a3cdf00c..588d48b46e 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Glass/engineering.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Glass/engineering.rsi/meta.json @@ -181,6 +181,15 @@ }, { "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/external.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/external.rsi/emergency_unlit.png new file mode 100644 index 0000000000..817f2fb3f9 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Glass/external.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/external.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Glass/external.rsi/meta.json index 79e2ba28b3..aa15016736 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Glass/external.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Glass/external.rsi/meta.json @@ -154,6 +154,15 @@ }, { "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/firelock.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/firelock.rsi/emergency_unlit.png new file mode 100644 index 0000000000..817f2fb3f9 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Glass/firelock.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/firelock.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Glass/firelock.rsi/meta.json index 4849d33e64..f3162728da 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Glass/firelock.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Glass/firelock.rsi/meta.json @@ -130,6 +130,15 @@ }, { "name": "welded_open" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/glass.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/glass.rsi/emergency_unlit.png index a0c0a88c66..817f2fb3f9 100644 Binary files a/Resources/Textures/Structures/Doors/Airlocks/Glass/glass.rsi/emergency_unlit.png and b/Resources/Textures/Structures/Doors/Airlocks/Glass/glass.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/glass.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Glass/glass.rsi/meta.json index a00faa6df8..9bb7e9bb72 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Glass/glass.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Glass/glass.rsi/meta.json @@ -109,15 +109,6 @@ ] ] }, - { - "name": "emergency_unlit", - "delays": [ - [ - 12, - 12 - ] - ] - }, { "name": "open" }, @@ -244,6 +235,15 @@ }, { "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/medical.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/medical.rsi/emergency_unlit.png new file mode 100644 index 0000000000..817f2fb3f9 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Glass/medical.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/medical.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Glass/medical.rsi/meta.json index 01a3cdf00c..588d48b46e 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Glass/medical.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Glass/medical.rsi/meta.json @@ -181,6 +181,15 @@ }, { "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/science.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/science.rsi/emergency_unlit.png new file mode 100644 index 0000000000..817f2fb3f9 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Glass/science.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/science.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Glass/science.rsi/meta.json index 01a3cdf00c..588d48b46e 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Glass/science.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Glass/science.rsi/meta.json @@ -181,6 +181,15 @@ }, { "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/security.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Glass/security.rsi/emergency_unlit.png new file mode 100644 index 0000000000..817f2fb3f9 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Glass/security.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Glass/security.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Glass/security.rsi/meta.json index 01a3cdf00c..588d48b46e 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Glass/security.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Glass/security.rsi/meta.json @@ -181,6 +181,15 @@ }, { "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/basic.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/basic.rsi/emergency_unlit.png new file mode 100644 index 0000000000..817f2fb3f9 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/basic.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/basic.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Standard/basic.rsi/meta.json index 01a3cdf00c..588d48b46e 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Standard/basic.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Standard/basic.rsi/meta.json @@ -181,6 +181,15 @@ }, { "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/cargo.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/cargo.rsi/emergency_unlit.png new file mode 100644 index 0000000000..817f2fb3f9 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/cargo.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/cargo.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Standard/cargo.rsi/meta.json index 01a3cdf00c..588d48b46e 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Standard/cargo.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Standard/cargo.rsi/meta.json @@ -181,6 +181,15 @@ }, { "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/command.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/command.rsi/emergency_unlit.png new file mode 100644 index 0000000000..817f2fb3f9 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/command.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/command.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Standard/command.rsi/meta.json index 01a3cdf00c..588d48b46e 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Standard/command.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Standard/command.rsi/meta.json @@ -181,6 +181,15 @@ }, { "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/engineering.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/engineering.rsi/emergency_unlit.png new file mode 100644 index 0000000000..817f2fb3f9 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/engineering.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/engineering.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Standard/engineering.rsi/meta.json index 01a3cdf00c..588d48b46e 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Standard/engineering.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Standard/engineering.rsi/meta.json @@ -181,6 +181,15 @@ }, { "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/external.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/external.rsi/emergency_unlit.png new file mode 100644 index 0000000000..a40cee44be Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/external.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/external.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Standard/external.rsi/meta.json index 79e2ba28b3..aa15016736 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Standard/external.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Standard/external.rsi/meta.json @@ -154,6 +154,15 @@ }, { "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/firelock.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/firelock.rsi/emergency_unlit.png new file mode 100644 index 0000000000..817f2fb3f9 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/firelock.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/firelock.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Standard/firelock.rsi/meta.json index e57e587acd..7c1ec64f62 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Standard/firelock.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Standard/firelock.rsi/meta.json @@ -145,6 +145,15 @@ }, { "name": "welded_open" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/freezer.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/freezer.rsi/emergency_unlit.png new file mode 100644 index 0000000000..817f2fb3f9 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/freezer.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/freezer.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Standard/freezer.rsi/meta.json index 01a3cdf00c..588d48b46e 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Standard/freezer.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Standard/freezer.rsi/meta.json @@ -181,6 +181,15 @@ }, { "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/maint.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/maint.rsi/emergency_unlit.png new file mode 100644 index 0000000000..817f2fb3f9 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/maint.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/maint.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Standard/maint.rsi/meta.json index 01a3cdf00c..588d48b46e 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Standard/maint.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Standard/maint.rsi/meta.json @@ -181,6 +181,15 @@ }, { "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/medical.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/medical.rsi/emergency_unlit.png new file mode 100644 index 0000000000..817f2fb3f9 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/medical.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/medical.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Standard/medical.rsi/meta.json index 01a3cdf00c..588d48b46e 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Standard/medical.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Standard/medical.rsi/meta.json @@ -181,6 +181,15 @@ }, { "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/science.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/science.rsi/emergency_unlit.png new file mode 100644 index 0000000000..817f2fb3f9 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/science.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/science.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Standard/science.rsi/meta.json index 01a3cdf00c..588d48b46e 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Standard/science.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Standard/science.rsi/meta.json @@ -181,6 +181,15 @@ }, { "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/security.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/security.rsi/emergency_unlit.png new file mode 100644 index 0000000000..817f2fb3f9 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/security.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/security.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Standard/security.rsi/meta.json index 01a3cdf00c..588d48b46e 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Standard/security.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Standard/security.rsi/meta.json @@ -181,6 +181,15 @@ }, { "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle.rsi/emergency_unlit.png new file mode 100644 index 0000000000..31f7a5f9f0 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle.rsi/meta.json b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle.rsi/meta.json index f439b226fc..7248a273c1 100644 --- a/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Airlocks/Standard/shuttle.rsi/meta.json @@ -129,6 +129,15 @@ }, { "name": "welded" + }, + { + "name": "emergency_unlit", + "delays": [ + [ + 0.4, + 0.4 + ] + ] } ] } diff --git a/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/emergency_unlit.png b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/emergency_unlit.png new file mode 100644 index 0000000000..ccd783a239 Binary files /dev/null and b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/emergency_unlit.png differ diff --git a/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/meta.json b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/meta.json index 9a8f157fc8..129ed1367c 100644 --- a/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/meta.json @@ -163,6 +163,10 @@ { "name":"secure_underlay", "directions":4 + }, + { + "name": "emergency_unlit", + "directions": 4 } ] }