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

@@ -20,6 +20,7 @@ namespace Content.Server.Remotes
[Dependency] private readonly SharedDoorSystem _sharedDoorSystem = default!;
[Dependency] private readonly DoorSystem _doorSystem = default!;
[Dependency] private readonly SharedInteractionSystem _interactionSystem = default!;
[Dependency] private readonly SharedAirlockSystem _sharedAirlockSystem = default!;
public override void Initialize()
{
@@ -38,15 +39,13 @@ namespace Content.Server.Remotes
_popupSystem.PopupEntity(Loc.GetString("door-remote-switch-state-toggle-bolts"), args.User, Filter.Entities(args.User));
break;
case DoorRemoteComponent.OperatingMode.ToggleBolts:
component.Mode = DoorRemoteComponent.OperatingMode.OpenClose; // TODO: Swítch to ToggleEmergencyAcces when EA is implemented
_popupSystem.PopupEntity(Loc.GetString("door-remote-switch-state-open-close"), args.User, Filter.Entities(args.User)); // TODO: See the above comment
component.Mode = DoorRemoteComponent.OperatingMode.ToggleEmergencyAccess;
_popupSystem.PopupEntity(Loc.GetString("door-remote-switch-state-toggle-emergency-access"), args.User, Filter.Entities(args.User));
break;
/*
case DoorRemoteComponent.OperatingMode.ToggleEmergencyAccess:
component.Mode = DoorRemoteComponent.OperatingMode.OpenClose;
_popupSystem.PopupEntity(Loc.GetString("door-remote-switch-state-open-close"), args.User, Filter.Entities(args.User));
break;
*/
}
}
@@ -88,6 +87,15 @@ namespace Content.Server.Remotes
}
}
}
if (component.Mode == DoorRemoteComponent.OperatingMode.ToggleEmergencyAccess
&& airlockComponent.IsPowered())
{
if (_doorSystem.HasAccess(doorComponent.Owner, args.Used))
{
_sharedAirlockSystem.ToggleEmergencyAccess(airlockComponent);
}
}
}
}
}