Fix opening wire panels without WiresPanelSecurityComponent (#20798)

This commit is contained in:
chromiumboy
2023-10-06 16:26:02 -05:00
committed by GitHub
parent 186e395b23
commit 7d20aefc0a
2 changed files with 8 additions and 4 deletions

View File

@@ -152,10 +152,12 @@ public sealed class AirlockSystem : SharedAirlockSystem
{
if (TryComp<WiresPanelComponent>(uid, out var panel) &&
panel.Open &&
TryComp<WiresPanelSecurityComponent>(uid, out var wiresPanelSecurity) &&
wiresPanelSecurity.WiresAccessible &&
TryComp<ActorComponent>(args.User, out var actor))
{
if (TryComp<WiresPanelSecurityComponent>(uid, out var wiresPanelSecurity) &&
!wiresPanelSecurity.WiresAccessible)
return;
_wiresSystem.OpenUserInterface(uid, actor.PlayerSession);
args.Handled = true;
return;

View File

@@ -463,11 +463,13 @@ public sealed class WiresSystem : SharedWiresSystem
return;
if (panel.Open &&
TryComp<WiresPanelSecurityComponent>(uid, out var wiresPanelSecurity) &&
wiresPanelSecurity.WiresAccessible &&
(_toolSystem.HasQuality(args.Used, "Cutting", tool) ||
_toolSystem.HasQuality(args.Used, "Pulsing", tool)))
{
if (TryComp<WiresPanelSecurityComponent>(uid, out var wiresPanelSecurity) &&
!wiresPanelSecurity.WiresAccessible)
return;
if (TryComp(args.User, out ActorComponent? actor))
{
_uiSystem.TryOpen(uid, WiresUiKey.Key, actor.PlayerSession);