From b1e69ee84da1484943bca5e6d3b4af29777e5004 Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Fri, 27 Sep 2024 16:10:27 +1000 Subject: [PATCH] Fix airlock autoclose mispredict (#32477) * Fix airlock autoclose mispredict It was hard to see this ingame due to animations masking it. The only way you'd notice currently is the light mispredicting. * cudin --- Content.Shared/Doors/Systems/SharedAirlockSystem.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Content.Shared/Doors/Systems/SharedAirlockSystem.cs b/Content.Shared/Doors/Systems/SharedAirlockSystem.cs index c0c274207b..5a9cde74ee 100644 --- a/Content.Shared/Doors/Systems/SharedAirlockSystem.cs +++ b/Content.Shared/Doors/Systems/SharedAirlockSystem.cs @@ -2,15 +2,16 @@ using Content.Shared.Doors.Components; using Content.Shared.Popups; using Content.Shared.Prying.Components; using Content.Shared.Wires; +using Robust.Shared.Timing; namespace Content.Shared.Doors.Systems; public abstract class SharedAirlockSystem : EntitySystem { + [Dependency] private readonly IGameTiming _timing = default!; [Dependency] protected readonly SharedAppearanceSystem Appearance = default!; [Dependency] protected readonly SharedDoorSystem DoorSystem = default!; - [Dependency] protected readonly SharedPopupSystem Popup = default!; - [Dependency] private readonly SharedWiresSystem _wiresSystem = default!; + [Dependency] private readonly SharedWiresSystem _wiresSystem = default!; public override void Initialize() { @@ -46,6 +47,10 @@ public abstract class SharedAirlockSystem : EntitySystem private void OnStateChanged(EntityUid uid, AirlockComponent component, DoorStateChangedEvent args) { + // This is here so we don't accidentally bulldoze state values and mispredict. + if (_timing.ApplyingState) + return; + // Only show the maintenance panel if the airlock is closed if (TryComp(uid, out var wiresPanel)) {