diff --git a/Content.Client/Doors/AirlockVisualizer.cs b/Content.Client/Doors/AirlockVisualizer.cs
index a428a5bc2e..51ff752e13 100644
--- a/Content.Client/Doors/AirlockVisualizer.cs
+++ b/Content.Client/Doors/AirlockVisualizer.cs
@@ -17,9 +17,26 @@ namespace Content.Client.Doors
{
private const string AnimationKey = "airlock_animation";
- [DataField("animation_time")]
+ [DataField("animationTime")]
private float _delay = 0.8f;
+ [DataField("denyAnimationTime")]
+ private float _denyDelay = 0.3f;
+
+ ///
+ /// Whether the maintenance panel is animated or stays static.
+ /// False for windoors.
+ ///
+ [DataField("animatedPanel")]
+ private bool _animatedPanel = true;
+
+ ///
+ /// Whether the BaseUnlit layer should still be visible when the airlock
+ /// is opened.
+ ///
+ [DataField("openUnlitVisible")]
+ private bool _openUnlitVisible = false;
+
private Animation CloseAnimation = default!;
private Animation OpenAnimation = default!;
private Animation DenyAnimation = default!;
@@ -38,10 +55,13 @@ namespace Content.Client.Doors
flickUnlit.LayerKey = DoorVisualLayers.BaseUnlit;
flickUnlit.KeyFrames.Add(new AnimationTrackSpriteFlick.KeyFrame("closing_unlit", 0f));
- var flickMaintenancePanel = new AnimationTrackSpriteFlick();
- CloseAnimation.AnimationTracks.Add(flickMaintenancePanel);
- flickMaintenancePanel.LayerKey = WiresVisualizer.WiresVisualLayers.MaintenancePanel;
- flickMaintenancePanel.KeyFrames.Add(new AnimationTrackSpriteFlick.KeyFrame("panel_closing", 0f));
+ if (_animatedPanel)
+ {
+ var flickMaintenancePanel = new AnimationTrackSpriteFlick();
+ CloseAnimation.AnimationTracks.Add(flickMaintenancePanel);
+ flickMaintenancePanel.LayerKey = WiresVisualizer.WiresVisualLayers.MaintenancePanel;
+ flickMaintenancePanel.KeyFrames.Add(new AnimationTrackSpriteFlick.KeyFrame("panel_closing", 0f));
+ }
}
OpenAnimation = new Animation {Length = TimeSpan.FromSeconds(_delay)};
@@ -56,24 +76,21 @@ namespace Content.Client.Doors
flickUnlit.LayerKey = DoorVisualLayers.BaseUnlit;
flickUnlit.KeyFrames.Add(new AnimationTrackSpriteFlick.KeyFrame("opening_unlit", 0f));
- var flickMaintenancePanel = new AnimationTrackSpriteFlick();
- OpenAnimation.AnimationTracks.Add(flickMaintenancePanel);
- flickMaintenancePanel.LayerKey = WiresVisualizer.WiresVisualLayers.MaintenancePanel;
- flickMaintenancePanel.KeyFrames.Add(new AnimationTrackSpriteFlick.KeyFrame("panel_opening", 0f));
-
- var sound = new AnimationTrackPlaySound();
- OpenAnimation.AnimationTracks.Add(sound);
+ if (_animatedPanel)
+ {
+ var flickMaintenancePanel = new AnimationTrackSpriteFlick();
+ OpenAnimation.AnimationTracks.Add(flickMaintenancePanel);
+ flickMaintenancePanel.LayerKey = WiresVisualizer.WiresVisualLayers.MaintenancePanel;
+ flickMaintenancePanel.KeyFrames.Add(new AnimationTrackSpriteFlick.KeyFrame("panel_opening", 0f));
+ }
}
- DenyAnimation = new Animation {Length = TimeSpan.FromSeconds(0.3f)};
+ DenyAnimation = new Animation {Length = TimeSpan.FromSeconds(_denyDelay)};
{
var flick = new AnimationTrackSpriteFlick();
DenyAnimation.AnimationTracks.Add(flick);
flick.LayerKey = DoorVisualLayers.BaseUnlit;
flick.KeyFrames.Add(new AnimationTrackSpriteFlick.KeyFrame("deny_unlit", 0f));
-
- var sound = new AnimationTrackPlaySound();
- DenyAnimation.AnimationTracks.Add(sound);
}
}
@@ -108,13 +125,16 @@ namespace Content.Client.Doors
{
case DoorVisualState.Open:
sprite.LayerSetState(DoorVisualLayers.Base, "open");
- unlitVisible = false;
+ unlitVisible = _openUnlitVisible;
+ if (_openUnlitVisible)
+ {
+ sprite.LayerSetState(DoorVisualLayers.BaseUnlit, "open_unlit");
+ }
break;
case DoorVisualState.Closed:
sprite.LayerSetState(DoorVisualLayers.Base, "closed");
sprite.LayerSetState(DoorVisualLayers.BaseUnlit, "closed_unlit");
sprite.LayerSetState(DoorVisualLayers.BaseBolted, "bolted_unlit");
- sprite.LayerSetState(WiresVisualizer.WiresVisualLayers.MaintenancePanel, "panel_open");
break;
case DoorVisualState.Opening:
animPlayer.Play(OpenAnimation, AnimationKey);
diff --git a/Content.Server/Doors/Components/AirlockComponent.cs b/Content.Server/Doors/Components/AirlockComponent.cs
index dda64b4cda..83a1745daf 100644
--- a/Content.Server/Doors/Components/AirlockComponent.cs
+++ b/Content.Server/Doors/Components/AirlockComponent.cs
@@ -59,6 +59,12 @@ namespace Content.Server.Doors.Components
[DataField("powerWiresTimeout")]
public float PowerWiresTimeout = 5.0f;
+ ///
+ /// Whether the maintenance panel should be visible even if the airlock is opened.
+ ///
+ [DataField("openPanelVisible")]
+ public bool OpenPanelVisible = false;
+
private CancellationTokenSource _powerWiresPulsedTimerCancel = new();
private bool _powerWiresPulsed;
diff --git a/Content.Server/Doors/Systems/AirlockSystem.cs b/Content.Server/Doors/Systems/AirlockSystem.cs
index 73d6508272..8222e40b32 100644
--- a/Content.Server/Doors/Systems/AirlockSystem.cs
+++ b/Content.Server/Doors/Systems/AirlockSystem.cs
@@ -42,7 +42,9 @@ namespace Content.Server.Doors.Systems
// Only show the maintenance panel if the airlock is closed
if (component.WiresComponent != null)
{
- component.WiresComponent.IsPanelVisible = args.State != SharedDoorComponent.DoorState.Open;
+ component.WiresComponent.IsPanelVisible =
+ args.State != SharedDoorComponent.DoorState.Open
+ || component.OpenPanelVisible;
}
// If the door is closed, we should look if the bolt was locked while closing
component.UpdateBoltLightStatus();
diff --git a/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml b/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml
index bc416c41ec..bba134dd1b 100644
--- a/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml
+++ b/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml
@@ -64,7 +64,7 @@
- type: Appearance
visuals:
- type: AirlockVisualizer
- animation_time: 0.6
+ animationTime: 0.6
- type: WiresVisualizer
- type: Wires
BoardName: "Firelock Control"
diff --git a/Resources/Prototypes/Entities/Structures/Doors/Windoors/base.yml b/Resources/Prototypes/Entities/Structures/Doors/Windoors/base.yml
index 0f8bcc4ea4..a17acd61c6 100644
--- a/Resources/Prototypes/Entities/Structures/Doors/Windoors/base.yml
+++ b/Resources/Prototypes/Entities/Structures/Doors/Windoors/base.yml
@@ -22,20 +22,20 @@
- type: Sprite
netsync: false
drawdepth: FloorObjects
- sprite: Structures/Doors/Windoors/glass.rsi
+ sprite: Structures/Doors/Windoors/windoor.rsi
layers:
- state: closed
- map: [ "enum.DoorVisualLayers.Base" ]
+ map: ["enum.DoorVisualLayers.Base"]
- state: closed_unlit
shader: unshaded
- map: [ "enum.DoorVisualLayers.BaseUnlit" ]
+ map: ["enum.DoorVisualLayers.BaseUnlit"]
- state: welded
- map: [ "enum.DoorVisualLayers.BaseWelded" ]
+ map: ["enum.DoorVisualLayers.BaseWelded"]
- state: bolted_unlit
shader: unshaded
- map: [ "enum.DoorVisualLayers.BaseBolted" ]
+ map: ["enum.DoorVisualLayers.BaseBolted"]
- state: panel_open
- map: [ "enum.WiresVisualLayers.MaintenancePanel" ]
+ map: ["enum.WiresVisualLayers.MaintenancePanel"]
- type: ApcPowerReceiver
- type: Damageable
resistances: glassResistances
@@ -54,10 +54,14 @@
acts: [ "Destruction" ]
- type: AccessReader
- type: Airlock
+ openPanelVisible: true
- type: Door
- openSound: /Audio/Machines/windoor_open.ogg
- closeSound: /Audio/Machines/windoor_open.ogg
- denySound: /Audio/Machines/airlock_deny.ogg
+ openSound:
+ path: /Audio/Machines/windoor_open.ogg
+ closeSound:
+ path: /Audio/Machines/windoor_open.ogg
+ denySound:
+ path: /Audio/Machines/airlock_deny.ogg
- type: Wires
BoardName: "Windoor Control"
LayoutId: Airlock
@@ -68,9 +72,11 @@
- type: Appearance
visuals:
- type: AirlockVisualizer
- hasMaintenancePanel: false
- openCloseUnlit: false
- delay: 0.7
+ animationTime: 0.9
+ denyAnimationTime: 0.4
+ animatedPanel: false
+ openUnlitVisible: true
+ - type: WiresVisualizer
- type: entity
id: BaseSecureWindoor
@@ -83,7 +89,24 @@
airBlockedDirection:
- South
- type: Sprite
- sprite: Structures/Doors/Windoors/secure.rsi
+ netsync: false
+ drawdepth: FloorObjects
+ sprite: Structures/Doors/Windoors/windoor.rsi
+ layers:
+ - state: secure_underlay
+ - state: closed
+ map: [ "enum.DoorVisualLayers.Base" ]
+ - state: closed_unlit
+ shader: unshaded
+ map: [ "enum.DoorVisualLayers.BaseUnlit" ]
+ - state: welded
+ map: [ "enum.DoorVisualLayers.BaseWelded" ]
+ - state: bolted_unlit
+ shader: unshaded
+ map: [ "enum.DoorVisualLayers.BaseBolted" ]
+ - state: panel_open
+ map: [ "enum.WiresVisualLayers.MaintenancePanel" ]
+ visible: false
- type: Destructible
thresholds:
- trigger:
diff --git a/Resources/Prototypes/Entities/Structures/Doors/Windoors/windoor.yml b/Resources/Prototypes/Entities/Structures/Doors/Windoors/windoor.yml
index 57511c229c..31debff337 100644
--- a/Resources/Prototypes/Entities/Structures/Doors/Windoors/windoor.yml
+++ b/Resources/Prototypes/Entities/Structures/Doors/Windoors/windoor.yml
@@ -10,6 +10,7 @@
name: secure windoor
description: It's a sturdy window and a sliding door. Wow!
+# TODO remove these with parameterized prototypes/whatever we end up doing
# Bar windoor
- type: entity
parent: Windoor
diff --git a/Resources/Prototypes/Entities/Structures/Doors/windoor.yml b/Resources/Prototypes/Entities/Structures/Doors/windoor.yml
deleted file mode 100644
index 57511c229c..0000000000
--- a/Resources/Prototypes/Entities/Structures/Doors/windoor.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-- type: entity
- id: Windoor
- parent: BaseWindoor
- name: windoor
- description: It's a window and a sliding door. Wow!
-
-- type: entity
- id: WindoorSecure
- parent: BaseSecureWindoor
- name: secure windoor
- description: It's a sturdy window and a sliding door. Wow!
-
-# Bar windoor
-- type: entity
- parent: Windoor
- id: WindoorBarLocked
- suffix: Bar, Locked
- components:
- - type: AccessReader
- access: [["Bar"]]
-
-# Chemistry windoor
-- type: entity
- parent: WindoorSecure
- id: WindoorMedicalLocked
- suffix: Medical, Locked
- components:
- - type: AccessReader
- access: [["Medical"]]
-
-# HOP's office windoor
-- type: entity
- parent: WindoorSecure
- id: WindoorCommandLocked
- suffix: Command, Locked
- components:
- - type: AccessReader
- access: [["Command"]]
-
-# Cargo windoor
-- type: entity
- parent: Windoor
- id: WindoorCargoLocked
- suffix: Cargo, Locked
- components:
- - type: AccessReader
- access: [["Cargo"]]
diff --git a/Resources/Prototypes/Entities/Structures/Windoors/base.yml b/Resources/Prototypes/Entities/Structures/Windoors/base.yml
deleted file mode 100644
index ccb3fe258c..0000000000
--- a/Resources/Prototypes/Entities/Structures/Windoors/base.yml
+++ /dev/null
@@ -1,112 +0,0 @@
-- type: entity
- id: BaseWindoor
- parent: BaseStructure
- abstract: true
- placement:
- mode: SnapgridCenter
- components:
- - type: InteractionOutline
- - type: Physics
- fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.2,-0.49,-0.49,0.49"
- mass: 50
- layer:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
- mask:
- - VaultImpassable
- - type: Sprite
- netsync: false
- drawdepth: FloorObjects
- sprite: Structures/Doors/Windoors/glass.rsi
- layers:
- - state: closed
- map: [ "enum.DoorVisualLayers.Base" ]
- - state: closed_unlit
- shader: unshaded
- map: [ "enum.DoorVisualLayers.BaseUnlit" ]
- - state: welded
- map: [ "enum.DoorVisualLayers.BaseWelded" ]
- - state: bolted_unlit
- shader: unshaded
- map: [ "enum.DoorVisualLayers.BaseBolted" ]
- - state: panel_open
- map: [ "enum.WiresVisualLayers.MaintenancePanel" ]
- - type: ApcPowerReceiver
- - type: Damageable
- resistances: glassResistances
- - type: Destructible
- thresholds:
- - trigger:
- !type:DamageTrigger
- damage: 200
- behaviors:
- - !type:SpawnEntitiesBehavior
- spawn:
- ShardGlass:
- min: 1
- max: 2
- - !type:DoActsBehavior
- acts: [ "Destruction" ]
- - type: AccessReader
- - type: Airlock
- - type: Door
- - type: Wires
- BoardName: "Windoor Control"
- LayoutId: Airlock
- - type: UserInterface
- interfaces:
- - key: enum.WiresUiKey.Key
- type: WiresBoundUserInterface
- - type: Appearance
- visuals:
- - type: AirlockVisualizer
- open_sound: /Audio/Machines/windoor_open.ogg
- close_sound: /Audio/Machines/windoor_open.ogg
- deny_sound: /Audio/Machines/airlock_deny.ogg
- hasMaintenancePanel: false
- openCloseUnlit: false
- delay: 0.7
-
-- type: entity
- id: BaseSecureWindoor
- parent: BaseWindoor
- abstract: true
- components:
- - type: Airtight
- fixVacuum: true
- noAirWhenFullyAirBlocked: false
- airBlockedDirection:
- - South
- - type: Sprite
- sprite: Structures/Doors/Windoors/secure.rsi
- - type: Destructible
- thresholds:
- - trigger:
- !type:DamageTrigger
- damage: 400
- behaviors:
- - !type:SpawnEntitiesBehavior
- spawn:
- ShardGlass:
- min: 1
- max: 2
- - !type:SpawnEntitiesBehavior
- spawn:
- MetalRod:
- min: 1
- max: 3
- - !type:DoActsBehavior
- acts: [ "Destruction" ]
-
-# "0.49,-0.49,-0.49,-0.2"
-# to:
-# (-0.2, -0.49), (-0.2, 0.49), (-0.49, 0.49), (-0.49, -0.49)
-# what i want is:
-# (0.49, -0.49), (0.49, -0.2), (-0.49, -0.2), (-0.49, -0.49)
-# which is:
-# "-0.2,-0.49,-0.49,0.49"
diff --git a/Resources/Textures/Structures/Doors/Windoors/glass.rsi/bolted_unlit.png b/Resources/Textures/Structures/Doors/Windoors/glass.rsi/bolted_unlit.png
deleted file mode 100644
index f154b0f50b..0000000000
Binary files a/Resources/Textures/Structures/Doors/Windoors/glass.rsi/bolted_unlit.png and /dev/null differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/glass.rsi/closed_unlit.png b/Resources/Textures/Structures/Doors/Windoors/glass.rsi/closed_unlit.png
deleted file mode 100644
index f154b0f50b..0000000000
Binary files a/Resources/Textures/Structures/Doors/Windoors/glass.rsi/closed_unlit.png and /dev/null differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/glass.rsi/deny_unlit.png b/Resources/Textures/Structures/Doors/Windoors/glass.rsi/deny_unlit.png
deleted file mode 100644
index ec9fccfd59..0000000000
Binary files a/Resources/Textures/Structures/Doors/Windoors/glass.rsi/deny_unlit.png and /dev/null differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/glass.rsi/panel_open.png b/Resources/Textures/Structures/Doors/Windoors/glass.rsi/panel_open.png
deleted file mode 100644
index f154b0f50b..0000000000
Binary files a/Resources/Textures/Structures/Doors/Windoors/glass.rsi/panel_open.png and /dev/null differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/glass.rsi/spark.png b/Resources/Textures/Structures/Doors/Windoors/glass.rsi/spark.png
deleted file mode 100644
index d95187f082..0000000000
Binary files a/Resources/Textures/Structures/Doors/Windoors/glass.rsi/spark.png and /dev/null differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/glass.rsi/welded.png b/Resources/Textures/Structures/Doors/Windoors/glass.rsi/welded.png
deleted file mode 100644
index f154b0f50b..0000000000
Binary files a/Resources/Textures/Structures/Doors/Windoors/glass.rsi/welded.png and /dev/null differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/assembly1.png b/Resources/Textures/Structures/Doors/Windoors/secure.rsi/assembly1.png
deleted file mode 100644
index 7d9ec61ecc..0000000000
Binary files a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/assembly1.png and /dev/null differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/assembly2.png b/Resources/Textures/Structures/Doors/Windoors/secure.rsi/assembly2.png
deleted file mode 100644
index 7199abb2c1..0000000000
Binary files a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/assembly2.png and /dev/null differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/bolted_unlit.png b/Resources/Textures/Structures/Doors/Windoors/secure.rsi/bolted_unlit.png
deleted file mode 100644
index f154b0f50b..0000000000
Binary files a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/bolted_unlit.png and /dev/null differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/closed.png b/Resources/Textures/Structures/Doors/Windoors/secure.rsi/closed.png
deleted file mode 100644
index f4e59a2af3..0000000000
Binary files a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/closed.png and /dev/null differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/closed_unlit.png b/Resources/Textures/Structures/Doors/Windoors/secure.rsi/closed_unlit.png
deleted file mode 100644
index f154b0f50b..0000000000
Binary files a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/closed_unlit.png and /dev/null differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/closing.png b/Resources/Textures/Structures/Doors/Windoors/secure.rsi/closing.png
deleted file mode 100644
index a08434c90c..0000000000
Binary files a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/closing.png and /dev/null differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/deny_unlit.png b/Resources/Textures/Structures/Doors/Windoors/secure.rsi/deny_unlit.png
deleted file mode 100644
index 2c18f9a5b1..0000000000
Binary files a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/deny_unlit.png and /dev/null differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/meta.json b/Resources/Textures/Structures/Doors/Windoors/secure.rsi/meta.json
deleted file mode 100644
index bcbba3b52e..0000000000
--- a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/meta.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "name":1,
- "size": {"x":32,"y":32},
- "states":
- [
- {"name":"assembly2","directions":4,"delays":[[0.3,0.3],[0.3,0.3],[0.3,0.3],[0.3,0.3]]},
- {"name":"assembly1","directions":4},
- {"name":"closed","directions":4},
- {"name":"closing","directions":4,"delays":[[0.1,0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1,0.1]]},
- {"name":"open","directions":4},
- {"name":"opening","directions":4,"delays":[[0.1,0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1,0.1]]},
- {"name":"deny_unlit","directions":4,"delays":[[0.1,0.2,0.1],[0.1,0.2,0.1],[0.1,0.2,0.1],[0.1,0.2,0.1]]},
- {"name":"spark","directions":4,"delays":[[0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1]]},
- {"name":"closed_unlit","directions":4},
- {"name":"panel_open","directions":4},
- {"name":"welded","directions":4},
- {"name":"bolted_unlit","directions":4}
- ],
- "license":"CC-BY-SA-3.0",
- "copyright":"https://github.com/tgstation/tgstation/blob/3681006d7102045e334e8eddb23a8685fcdb258a/icons/obj/doors/windoor.dmi"
-}
diff --git a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/open.png b/Resources/Textures/Structures/Doors/Windoors/secure.rsi/open.png
deleted file mode 100644
index b583cf7fe0..0000000000
Binary files a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/open.png and /dev/null differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/opening.png b/Resources/Textures/Structures/Doors/Windoors/secure.rsi/opening.png
deleted file mode 100644
index e162ef9d39..0000000000
Binary files a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/opening.png and /dev/null differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/panel_open.png b/Resources/Textures/Structures/Doors/Windoors/secure.rsi/panel_open.png
deleted file mode 100644
index f154b0f50b..0000000000
Binary files a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/panel_open.png and /dev/null differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/spark.png b/Resources/Textures/Structures/Doors/Windoors/secure.rsi/spark.png
deleted file mode 100644
index 1642b04c41..0000000000
Binary files a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/spark.png and /dev/null differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/welded.png b/Resources/Textures/Structures/Doors/Windoors/secure.rsi/welded.png
deleted file mode 100644
index f154b0f50b..0000000000
Binary files a/Resources/Textures/Structures/Doors/Windoors/secure.rsi/welded.png and /dev/null differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/glass.rsi/assembly1.png b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/assembly1.png
similarity index 100%
rename from Resources/Textures/Structures/Doors/Windoors/glass.rsi/assembly1.png
rename to Resources/Textures/Structures/Doors/Windoors/windoor.rsi/assembly1.png
diff --git a/Resources/Textures/Structures/Doors/Windoors/glass.rsi/assembly2.png b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/assembly2.png
similarity index 100%
rename from Resources/Textures/Structures/Doors/Windoors/glass.rsi/assembly2.png
rename to Resources/Textures/Structures/Doors/Windoors/windoor.rsi/assembly2.png
diff --git a/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/bolted_unlit.png b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/bolted_unlit.png
new file mode 100644
index 0000000000..2ca98a410d
Binary files /dev/null and b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/bolted_unlit.png differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/glass.rsi/closed.png b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/closed.png
similarity index 100%
rename from Resources/Textures/Structures/Doors/Windoors/glass.rsi/closed.png
rename to Resources/Textures/Structures/Doors/Windoors/windoor.rsi/closed.png
diff --git a/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/closed_unlit.png b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/closed_unlit.png
new file mode 100644
index 0000000000..435a5cb044
Binary files /dev/null and b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/closed_unlit.png differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/glass.rsi/closing.png b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/closing.png
similarity index 100%
rename from Resources/Textures/Structures/Doors/Windoors/glass.rsi/closing.png
rename to Resources/Textures/Structures/Doors/Windoors/windoor.rsi/closing.png
diff --git a/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/closing_unlit.png b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/closing_unlit.png
new file mode 100644
index 0000000000..a7265ce6ec
Binary files /dev/null and b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/closing_unlit.png differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/deny_unlit.png b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/deny_unlit.png
new file mode 100644
index 0000000000..aface6a2f6
Binary files /dev/null and b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/deny_unlit.png differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/glass.rsi/meta.json b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/meta.json
similarity index 70%
rename from Resources/Textures/Structures/Doors/Windoors/glass.rsi/meta.json
rename to Resources/Textures/Structures/Doors/Windoors/windoor.rsi/meta.json
index bcbba3b52e..71193ffebe 100644
--- a/Resources/Textures/Structures/Doors/Windoors/glass.rsi/meta.json
+++ b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/meta.json
@@ -6,15 +6,19 @@
{"name":"assembly2","directions":4,"delays":[[0.3,0.3],[0.3,0.3],[0.3,0.3],[0.3,0.3]]},
{"name":"assembly1","directions":4},
{"name":"closed","directions":4},
+ {"name":"closed_unlit","directions":4},
{"name":"closing","directions":4,"delays":[[0.1,0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1,0.1]]},
+ {"name":"closing_unlit","directions":4,"delays":[[0.1,0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1,0.1]]},
{"name":"open","directions":4},
+ {"name":"open_unlit","directions":4},
{"name":"opening","directions":4,"delays":[[0.1,0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1,0.1]]},
+ {"name":"opening_unlit","directions":4,"delays":[[0.1,0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1,0.1]]},
{"name":"deny_unlit","directions":4,"delays":[[0.1,0.2,0.1],[0.1,0.2,0.1],[0.1,0.2,0.1],[0.1,0.2,0.1]]},
{"name":"spark","directions":4,"delays":[[0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1],[0.1,0.1,0.1,0.1,0.1,0.1]]},
- {"name":"closed_unlit","directions":4},
{"name":"panel_open","directions":4},
+ {"name":"bolted_unlit","directions":4},
{"name":"welded","directions":4},
- {"name":"bolted_unlit","directions":4}
+ {"name":"secure_underlay","directions":4}
],
"license":"CC-BY-SA-3.0",
"copyright":"https://github.com/tgstation/tgstation/blob/3681006d7102045e334e8eddb23a8685fcdb258a/icons/obj/doors/windoor.dmi"
diff --git a/Resources/Textures/Structures/Doors/Windoors/glass.rsi/open.png b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/open.png
similarity index 100%
rename from Resources/Textures/Structures/Doors/Windoors/glass.rsi/open.png
rename to Resources/Textures/Structures/Doors/Windoors/windoor.rsi/open.png
diff --git a/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/open_unlit.png b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/open_unlit.png
new file mode 100644
index 0000000000..ddcc55de0a
Binary files /dev/null and b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/open_unlit.png differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/glass.rsi/opening.png b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/opening.png
similarity index 100%
rename from Resources/Textures/Structures/Doors/Windoors/glass.rsi/opening.png
rename to Resources/Textures/Structures/Doors/Windoors/windoor.rsi/opening.png
diff --git a/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/opening_unlit.png b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/opening_unlit.png
new file mode 100644
index 0000000000..9a3072db8a
Binary files /dev/null and b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/opening_unlit.png differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/panel_open.png b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/panel_open.png
new file mode 100644
index 0000000000..21bbb4dedf
Binary files /dev/null and b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/panel_open.png differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/secure_underlay.png b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/secure_underlay.png
new file mode 100644
index 0000000000..e574e9a12c
Binary files /dev/null and b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/secure_underlay.png differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/spark.png b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/spark.png
new file mode 100644
index 0000000000..a139b5d3c3
Binary files /dev/null and b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/spark.png differ
diff --git a/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/welded.png b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/welded.png
new file mode 100644
index 0000000000..2975c479be
Binary files /dev/null and b/Resources/Textures/Structures/Doors/Windoors/windoor.rsi/welded.png differ