Cleaner BoundUserInterfaces (#17736)
This commit is contained in:
@@ -10,6 +10,7 @@ using Content.Shared.Popups;
|
||||
using Content.Shared.Shuttles.BUIStates;
|
||||
using Content.Shared.Shuttles.Events;
|
||||
using Content.Shared.Shuttles.Systems;
|
||||
using Robust.Server.GameObjects;
|
||||
using Robust.Shared.Audio;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Player;
|
||||
@@ -264,7 +265,8 @@ public sealed partial class EmergencyShuttleSystem
|
||||
}
|
||||
|
||||
// TODO: This is fucking bad
|
||||
if (!component.AuthorizedEntities.Remove(MetaData(idCard.Owner).EntityName)) return;
|
||||
if (!component.AuthorizedEntities.Remove(MetaData(idCard.Owner).EntityName))
|
||||
return;
|
||||
|
||||
_logger.Add(LogType.EmergencyShuttle, LogImpact.High, $"Emergency shuttle early launch REPEAL by {args.Session:user}");
|
||||
var remaining = component.AuthorizationsRequired - component.AuthorizedEntities.Count;
|
||||
@@ -276,7 +278,8 @@ public sealed partial class EmergencyShuttleSystem
|
||||
private void OnEmergencyAuthorize(EntityUid uid, EmergencyShuttleConsoleComponent component, EmergencyShuttleAuthorizeMessage args)
|
||||
{
|
||||
var player = args.Session.AttachedEntity;
|
||||
if (player == null) return;
|
||||
if (player == null)
|
||||
return;
|
||||
|
||||
if (!_idSystem.TryFindIdCard(player.Value, out var idCard) || !_reader.IsAllowed(idCard.Owner, uid))
|
||||
{
|
||||
@@ -285,7 +288,8 @@ public sealed partial class EmergencyShuttleSystem
|
||||
}
|
||||
|
||||
// TODO: This is fucking bad
|
||||
if (!component.AuthorizedEntities.Add(MetaData(idCard.Owner).EntityName)) return;
|
||||
if (!component.AuthorizedEntities.Add(MetaData(idCard.Owner).EntityName))
|
||||
return;
|
||||
|
||||
_logger.Add(LogType.EmergencyShuttle, LogImpact.High, $"Emergency shuttle early launch AUTH by {args.Session:user}");
|
||||
var remaining = component.AuthorizationsRequired - component.AuthorizedEntities.Count;
|
||||
@@ -296,7 +300,7 @@ public sealed partial class EmergencyShuttleSystem
|
||||
playSound: false, colorOverride: DangerColor);
|
||||
|
||||
if (!CheckForLaunch(component))
|
||||
SoundSystem.Play("/Audio/Misc/notice1.ogg", Filter.Broadcast());
|
||||
_audio.PlayGlobal("/Audio/Misc/notice1.ogg", Filter.Broadcast(), recordReplay: true);
|
||||
|
||||
UpdateAllEmergencyConsoles();
|
||||
}
|
||||
@@ -317,9 +321,10 @@ public sealed partial class EmergencyShuttleSystem
|
||||
|
||||
private void UpdateAllEmergencyConsoles()
|
||||
{
|
||||
foreach (var comp in EntityQuery<EmergencyShuttleConsoleComponent>(true))
|
||||
var query = AllEntityQuery<EmergencyShuttleConsoleComponent>();
|
||||
while (query.MoveNext(out var uid, out var comp))
|
||||
{
|
||||
UpdateConsoleState(comp.Owner, comp);
|
||||
UpdateConsoleState(uid, comp);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -332,12 +337,16 @@ public sealed partial class EmergencyShuttleSystem
|
||||
auths.Add(auth);
|
||||
}
|
||||
|
||||
_uiSystem.GetUiOrNull(uid, EmergencyConsoleUiKey.Key)?.SetState(new EmergencyConsoleBoundUserInterfaceState()
|
||||
{
|
||||
EarlyLaunchTime = EarlyLaunchAuthorized ? _timing.CurTime + TimeSpan.FromSeconds(_consoleAccumulator) : null,
|
||||
Authorizations = auths,
|
||||
AuthorizationsRequired = component.AuthorizationsRequired,
|
||||
});
|
||||
if (_uiSystem.TryGetUi(uid, EmergencyConsoleUiKey.Key, out var bui))
|
||||
UserInterfaceSystem.SetUiState(
|
||||
bui,
|
||||
new EmergencyConsoleBoundUserInterfaceState()
|
||||
{
|
||||
EarlyLaunchTime = EarlyLaunchAuthorized ? _timing.CurTime + TimeSpan.FromSeconds(_consoleAccumulator) : null,
|
||||
Authorizations = auths,
|
||||
AuthorizationsRequired = component.AuthorizationsRequired,
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
private bool CheckForLaunch(EmergencyShuttleConsoleComponent component)
|
||||
@@ -375,7 +384,7 @@ public sealed partial class EmergencyShuttleSystem
|
||||
playSound: false,
|
||||
colorOverride: DangerColor);
|
||||
|
||||
SoundSystem.Play("/Audio/Misc/notice1.ogg", Filter.Broadcast());
|
||||
_audio.PlayGlobal("/Audio/Misc/notice1.ogg", Filter.Broadcast(), recordReplay: true);
|
||||
}
|
||||
|
||||
public bool DelayEmergencyRoundEnd()
|
||||
|
||||
Reference in New Issue
Block a user