diff --git a/Content.Server/Construction/Completions/SpriteChange.cs b/Content.Server/Construction/Completions/SpriteChange.cs index 490eec0a73..0f01863761 100644 --- a/Content.Server/Construction/Completions/SpriteChange.cs +++ b/Content.Server/Construction/Completions/SpriteChange.cs @@ -1,4 +1,5 @@ #nullable enable +using System; using System.Threading.Tasks; using Content.Shared.Construction; using JetBrains.Annotations; @@ -27,6 +28,9 @@ namespace Content.Server.Construction.Completions if (!entity.TryGetComponent(out SpriteComponent? sprite)) return; + // That layer doesn't exist, we do nothing. + if (sprite.LayerCount <= Layer) return; + sprite.LayerSetSprite(Layer, SpriteSpecifier); } } diff --git a/Content.Server/Construction/Completions/SpriteStateChange.cs b/Content.Server/Construction/Completions/SpriteStateChange.cs index 060dd76e2e..30be743f19 100644 --- a/Content.Server/Construction/Completions/SpriteStateChange.cs +++ b/Content.Server/Construction/Completions/SpriteStateChange.cs @@ -22,17 +22,15 @@ namespace Content.Server.Construction.Completions public int Layer { get; private set; } = 0; public string? State { get; private set; } = string.Empty; - public async Task StepCompleted(IEntity entity, IEntity user) - { - await PerformAction(entity, user); - } - public async Task PerformAction(IEntity entity, IEntity? user) { if (entity.Deleted || string.IsNullOrEmpty(State)) return; if (!entity.TryGetComponent(out SpriteComponent? sprite)) return; + // That layer doesn't exist, we do nothing. + if (sprite.LayerCount <= Layer) return; + sprite.LayerSetState(Layer, State); } }