Adds emergency access to airlocks (#6500)

This commit is contained in:
WlarusFromDaSpace
2022-02-09 03:13:35 +00:00
committed by GitHub
parent 21e0cd4256
commit 50b1af08a2
57 changed files with 288 additions and 27 deletions

View File

@@ -204,7 +204,8 @@ public enum DoorVisuals
{
State,
Powered,
BoltLights
BoltLights,
EmergencyLights,
}
[Serializable, NetSerializable]

View File

@@ -13,6 +13,10 @@ public abstract class SharedAirlockComponent : Component
[ViewVariables(VVAccess.ReadWrite)]
[DataField("safety")]
public bool Safety = true;
[ViewVariables(VVAccess.ReadWrite)]
[DataField("emergencyAccess")]
public bool EmergencyAccess = false;
}
[Serializable, NetSerializable]

View File

@@ -38,4 +38,19 @@ public abstract class SharedAirlockSystem : EntitySystem
if (airlock.Safety && DoorSystem.GetColliding(uid).Any())
args.Cancel();
}
public void UpdateEmergencyLightStatus(SharedAirlockComponent component)
{
if (TryComp<AppearanceComponent>(component.Owner, out var appearanceComponent))
{
appearanceComponent.SetData(DoorVisuals.EmergencyLights, component.EmergencyAccess);
}
}
public void ToggleEmergencyAccess(SharedAirlockComponent component)
{
component.EmergencyAccess = !component.EmergencyAccess;
UpdateEmergencyLightStatus(component);
}
}