From b11fdd5f0baa3e3a8e39c3335115fe56a53e9203 Mon Sep 17 00:00:00 2001
From: deltanedas <39013340+deltanedas@users.noreply.github.com>
Date: Sat, 14 Sep 2024 00:51:51 +0000
Subject: [PATCH] network airlock AutoClose (#32124)
* network airlock AutoClose
* least stupid language
* great language
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
---
Content.Server/Doors/Systems/AirlockSystem.cs | 6 ++++--
Content.Shared/Doors/Components/AirlockComponent.cs | 2 +-
Content.Shared/Doors/Systems/SharedAirlockSystem.cs | 3 +++
3 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/Content.Server/Doors/Systems/AirlockSystem.cs b/Content.Server/Doors/Systems/AirlockSystem.cs
index e9f1db13ff..ca3d133bd0 100644
--- a/Content.Server/Doors/Systems/AirlockSystem.cs
+++ b/Content.Server/Doors/Systems/AirlockSystem.cs
@@ -35,9 +35,10 @@ public sealed class AirlockSystem : SharedAirlockSystem
private void OnSignalReceived(EntityUid uid, AirlockComponent component, ref SignalReceivedEvent args)
{
- if (args.Port == component.AutoClosePort)
+ if (args.Port == component.AutoClosePort && component.AutoClose)
{
component.AutoClose = false;
+ Dirty(uid, component);
}
}
@@ -84,10 +85,11 @@ public sealed class AirlockSystem : SharedAirlockSystem
return;
}
- if (component.KeepOpenIfClicked)
+ if (component.KeepOpenIfClicked && component.AutoClose)
{
// Disable auto close
component.AutoClose = false;
+ Dirty(uid, component);
}
}
}
diff --git a/Content.Shared/Doors/Components/AirlockComponent.cs b/Content.Shared/Doors/Components/AirlockComponent.cs
index b2fa7574f7..6577b1942a 100644
--- a/Content.Shared/Doors/Components/AirlockComponent.cs
+++ b/Content.Shared/Doors/Components/AirlockComponent.cs
@@ -48,7 +48,7 @@ public sealed partial class AirlockComponent : Component
///
/// Whether the airlock should auto close. This value is reset every time the airlock closes.
///
- [ViewVariables(VVAccess.ReadWrite)]
+ [DataField, AutoNetworkedField]
public bool AutoClose = true;
///
diff --git a/Content.Shared/Doors/Systems/SharedAirlockSystem.cs b/Content.Shared/Doors/Systems/SharedAirlockSystem.cs
index 5a6d45d9ec..c0c274207b 100644
--- a/Content.Shared/Doors/Systems/SharedAirlockSystem.cs
+++ b/Content.Shared/Doors/Systems/SharedAirlockSystem.cs
@@ -56,7 +56,10 @@ public abstract class SharedAirlockSystem : EntitySystem
// Make sure the airlock auto closes again next time it is opened
if (args.State == DoorState.Closed)
+ {
component.AutoClose = true;
+ Dirty(uid, component);
+ }
}
private void OnBeforeDoorOpened(EntityUid uid, AirlockComponent component, BeforeDoorOpenedEvent args)