@@ -68,7 +68,7 @@ public sealed class DoorSystem : SharedDoorSystem
|
||||
{
|
||||
new AnimationTrackSpriteFlick
|
||||
{
|
||||
LayerKey = DoorVisualLayers.BaseUnlit,
|
||||
LayerKey = DoorVisualLayers.BaseEmagging,
|
||||
KeyFrames =
|
||||
{
|
||||
new AnimationTrackSpriteFlick.KeyFrame(comp.EmaggingSpriteState, 0f),
|
||||
@@ -92,6 +92,10 @@ public sealed class DoorSystem : SharedDoorSystem
|
||||
if (_animationSystem.HasRunningAnimation(entity, DoorComponent.AnimationKey))
|
||||
_animationSystem.Stop(entity.Owner, DoorComponent.AnimationKey);
|
||||
|
||||
// We are checking beforehand since some doors may not have an emagging visual layer, and we don't want LayerSetVisible to throw an error.
|
||||
if (_sprite.TryGetLayer(entity.Owner, DoorVisualLayers.BaseEmagging, out var _, false))
|
||||
_sprite.LayerSetVisible(entity.Owner, DoorVisualLayers.BaseEmagging, state == DoorState.Emagging);
|
||||
|
||||
UpdateAppearanceForDoorState(entity, args.Sprite, state);
|
||||
}
|
||||
|
||||
@@ -134,7 +138,9 @@ public sealed class DoorSystem : SharedDoorSystem
|
||||
|
||||
return;
|
||||
case DoorState.Emagging:
|
||||
_animationSystem.Play(entity, (Animation)entity.Comp.EmaggingAnimation, DoorComponent.AnimationKey);
|
||||
// We are checking beforehand since some doors may not have an emagging visual layer.
|
||||
if (_sprite.TryGetLayer(entity.Owner, DoorVisualLayers.BaseEmagging, out var _, false))
|
||||
_animationSystem.Play(entity, (Animation)entity.Comp.EmaggingAnimation, DoorComponent.AnimationKey);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -325,4 +325,5 @@ public enum DoorVisualLayers : byte
|
||||
BaseUnlit,
|
||||
BaseBolted,
|
||||
BaseEmergencyAccess,
|
||||
BaseEmagging,
|
||||
}
|
||||
|
||||
@@ -45,6 +45,10 @@
|
||||
shader: unshaded
|
||||
visible: false
|
||||
map: ["enum.ElectrifiedLayers.Sparks"]
|
||||
- state: sparks
|
||||
map: ["enum.DoorVisualLayers.BaseEmagging"]
|
||||
shader: unshaded
|
||||
visible: false
|
||||
- type: AnimationPlayer
|
||||
- type: Physics
|
||||
- type: Fixtures
|
||||
|
||||
@@ -42,6 +42,10 @@
|
||||
shader: unshaded
|
||||
visible: false
|
||||
map: ["enum.ElectrifiedLayers.Sparks"]
|
||||
- state: sparks
|
||||
map: ["enum.DoorVisualLayers.BaseEmagging"]
|
||||
shader: unshaded
|
||||
visible: false
|
||||
- type: AnimationPlayer
|
||||
- type: Physics
|
||||
- type: Fixtures
|
||||
|
||||
@@ -31,6 +31,33 @@
|
||||
- type: Sprite
|
||||
sprite: Structures/Doors/Airlocks/Standard/shuttle.rsi
|
||||
snapCardinals: false
|
||||
layers:
|
||||
- state: closed
|
||||
map: ["enum.DoorVisualLayers.Base"]
|
||||
- state: closed_unlit
|
||||
shader: unshaded
|
||||
map: ["enum.DoorVisualLayers.BaseUnlit"]
|
||||
visible: false
|
||||
- state: welded
|
||||
map: ["enum.WeldableLayers.BaseWelded"]
|
||||
- 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"]
|
||||
- state: electrified_ai
|
||||
sprite: Interface/Misc/ai_hud.rsi
|
||||
shader: unshaded
|
||||
visible: false
|
||||
map: ["enum.ElectrifiedLayers.HUD"]
|
||||
- state: electrified
|
||||
sprite: Effects/electricity.rsi
|
||||
shader: unshaded
|
||||
visible: false
|
||||
map: ["enum.ElectrifiedLayers.Sparks"]
|
||||
- type: Wires
|
||||
layoutId: Docking
|
||||
- type: Door
|
||||
|
||||
@@ -57,6 +57,10 @@
|
||||
shader: unshaded
|
||||
visible: false
|
||||
map: ["enum.ElectrifiedLayers.Sparks"]
|
||||
- state: sparks
|
||||
map: ["enum.DoorVisualLayers.BaseEmagging"]
|
||||
shader: unshaded
|
||||
visible: false
|
||||
- type: AnimationPlayer
|
||||
- type: ApcPowerReceiver
|
||||
- type: ExtensionCableReceiver
|
||||
@@ -208,6 +212,10 @@
|
||||
shader: unshaded
|
||||
visible: false
|
||||
map: [ "enum.ElectrifiedLayers.Sparks" ]
|
||||
- state: sparks
|
||||
map: ["enum.DoorVisualLayers.BaseEmagging"]
|
||||
shader: unshaded
|
||||
visible: false
|
||||
- type: Damageable
|
||||
damageModifierSet: RGlass
|
||||
- type: Destructible
|
||||
@@ -279,6 +287,10 @@
|
||||
shader: unshaded
|
||||
visible: false
|
||||
map: [ "enum.ElectrifiedLayers.Sparks" ]
|
||||
- state: sparks
|
||||
map: ["enum.DoorVisualLayers.BaseEmagging"]
|
||||
shader: unshaded
|
||||
visible: false
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
@@ -345,6 +357,10 @@
|
||||
shader: unshaded
|
||||
visible: false
|
||||
map: [ "enum.ElectrifiedLayers.Sparks" ]
|
||||
- state: sparks
|
||||
map: ["enum.DoorVisualLayers.BaseEmagging"]
|
||||
shader: unshaded
|
||||
visible: false
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
@@ -416,6 +432,10 @@
|
||||
shader: unshaded
|
||||
visible: false
|
||||
map: [ "enum.ElectrifiedLayers.Sparks" ]
|
||||
- state: sparks
|
||||
map: ["enum.DoorVisualLayers.BaseEmagging"]
|
||||
shader: unshaded
|
||||
visible: false
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
@@ -482,6 +502,10 @@
|
||||
shader: unshaded
|
||||
visible: false
|
||||
map: [ "enum.ElectrifiedLayers.Sparks" ]
|
||||
- state: sparks
|
||||
map: ["enum.DoorVisualLayers.BaseEmagging"]
|
||||
shader: unshaded
|
||||
visible: false
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
|
||||
@@ -6,6 +6,33 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Structures/Doors/Windoors/clockwork_windoor.rsi
|
||||
layers:
|
||||
- state: closed
|
||||
map: ["enum.DoorVisualLayers.Base"]
|
||||
- state: closed_unlit
|
||||
shader: unshaded
|
||||
map: ["enum.DoorVisualLayers.BaseUnlit"]
|
||||
visible: false
|
||||
- state: welded
|
||||
map: ["enum.WeldableLayers.BaseWelded"]
|
||||
- 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"]
|
||||
- state: electrified_ai
|
||||
sprite: Interface/Misc/ai_hud.rsi
|
||||
shader: unshaded
|
||||
visible: false
|
||||
map: ["enum.ElectrifiedLayers.HUD"]
|
||||
- state: electrified
|
||||
sprite: Effects/electricity.rsi
|
||||
shader: unshaded
|
||||
visible: false
|
||||
map: ["enum.ElectrifiedLayers.Sparks"]
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
|
||||
Reference in New Issue
Block a user