Cleaner BoundUserInterfaces (#17736)

This commit is contained in:
TemporalOroboros
2023-07-08 09:02:17 -07:00
committed by GitHub
parent 55b4fb1649
commit 3ac4cf85db
137 changed files with 1069 additions and 972 deletions

View File

@@ -31,6 +31,7 @@ namespace Content.Server.Nuke
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly SharedAudioSystem _audio = default!;
[Dependency] private readonly UserInterfaceSystem _ui = default!;
[Dependency] private readonly SharedTransformSystem _xformSystem = default!;
/// <summary>
/// Used to calculate when the nuke song should start playing for maximum kino with the nuke sfx
@@ -82,16 +83,16 @@ namespace Content.Server.Nuke
{
base.Update(frameTime);
var query = EntityQuery<NukeComponent>();
foreach (var nuke in query)
var query = EntityQueryEnumerator<NukeComponent>();
while (query.MoveNext(out var uid, out var nuke))
{
switch (nuke.Status)
{
case NukeStatus.ARMED:
TickTimer(nuke.Owner, frameTime, nuke);
TickTimer(uid, frameTime, nuke);
break;
case NukeStatus.COOLDOWN:
TickCooldown(nuke.Owner, frameTime, nuke);
TickCooldown(uid, frameTime, nuke);
break;
}
}
@@ -180,8 +181,11 @@ namespace Content.Server.Nuke
// manually set transform anchor (bypassing anchorable)
// todo: it will break pullable system
transform.Coordinates = transform.Coordinates.SnapToGrid();
transform.Anchored = !transform.Anchored;
_xformSystem.SetCoordinates(uid, transform, transform.Coordinates.SnapToGrid());
if (transform.Anchored)
_xformSystem.Unanchor(uid, transform);
else
_xformSystem.AnchorEntity(uid, transform);
UpdateUserInterface(uid, component);
}
@@ -243,7 +247,7 @@ namespace Content.Server.Nuke
private void OnDoAfter(EntityUid uid, NukeComponent component, DoAfterEvent args)
{
if(args.Handled || args.Cancelled)
if (args.Handled || args.Cancelled)
return;
DisarmBomb(uid, component);
@@ -317,7 +321,6 @@ namespace Content.Server.Nuke
component.Status = NukeStatus.AWAIT_CODE;
break;
case NukeStatus.AWAIT_CODE:
{
if (!component.DiskSlot.HasItem)
{
component.Status = NukeStatus.AWAIT_DISK;
@@ -339,7 +342,6 @@ namespace Content.Server.Nuke
}
break;
}
case NukeStatus.AWAIT_ARM:
// do nothing, wait for arm button to be pressed
break;
@@ -378,7 +380,7 @@ namespace Content.Server.Nuke
CooldownTime = (int) component.CooldownTime
};
_ui.SetUiState(ui, state);
UserInterfaceSystem.SetUiState(ui, state);
}
private void PlayNukeKeypadSound(EntityUid uid, int number, NukeComponent? component = null)
@@ -444,7 +446,7 @@ namespace Content.Server.Nuke
if (stationUid != null)
_alertLevel.SetLevel(stationUid.Value, component.AlertLevelOnActivate, true, true, true, true);
var pos = nukeXform.MapPosition;
var pos = nukeXform.MapPosition;
var x = (int) pos.X;
var y = (int) pos.Y;
var posText = $"({x}, {y})";
@@ -458,7 +460,7 @@ namespace Content.Server.Nuke
_soundSystem.PlayGlobalOnStation(uid, _audio.GetSound(component.ArmSound));
_itemSlots.SetLock(uid, component.DiskSlot, true);
nukeXform.Anchored = true;
_xformSystem.AnchorEntity(uid, nukeXform);
component.Status = NukeStatus.ARMED;
UpdateUserInterface(uid, component);
}