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

@@ -15,8 +15,8 @@ internal sealed class PowerMonitoringConsoleSystem : EntitySystem
private float _updateTimer = 0.0f;
private const float UpdateTime = 1.0f;
[Dependency] private UserInterfaceSystem _userInterfaceSystem = default!;
[Dependency] private readonly NodeContainerSystem _nodeContainer = default!;
[Dependency] private readonly UserInterfaceSystem _userInterfaceSystem = default!;
public override void Update(float frameTime)
{
@@ -24,9 +24,11 @@ internal sealed class PowerMonitoringConsoleSystem : EntitySystem
if (_updateTimer >= UpdateTime)
{
_updateTimer -= UpdateTime;
foreach (var component in EntityQuery<PowerMonitoringConsoleComponent>())
var query = EntityQueryEnumerator<PowerMonitoringConsoleComponent>();
while (query.MoveNext(out var uid, out var component))
{
UpdateUIState(component.Owner, component);
UpdateUIState(uid, component);
}
}
}
@@ -52,8 +54,7 @@ internal sealed class PowerMonitoringConsoleSystem : EntitySystem
if (!_nodeContainer.TryGetNode<Node>(ncComp, "hv", out var node))
return;
var netQ = node.NodeGroup as PowerNet;
if (netQ != null)
if (node.NodeGroup is PowerNet netQ)
{
foreach (PowerConsumerComponent pcc in netQ.Consumers)
{
@@ -92,9 +93,10 @@ internal sealed class PowerMonitoringConsoleSystem : EntitySystem
// Sort
loads.Sort(CompareLoadOrSources);
sources.Sort(CompareLoadOrSources);
// Actually set state.
var state = new PowerMonitoringConsoleBoundInterfaceState(totalSources, totalLoads, sources.ToArray(), loads.ToArray());
_userInterfaceSystem.GetUiOrNull(target, PowerMonitoringConsoleUiKey.Key)?.SetState(state);
if (_userInterfaceSystem.TryGetUi(target, PowerMonitoringConsoleUiKey.Key, out var bui))
UserInterfaceSystem.SetUiState(bui, new PowerMonitoringConsoleBoundInterfaceState(totalSources, totalLoads, sources.ToArray(), loads.ToArray()));
}
private int CompareLoadOrSources(PowerMonitoringConsoleEntry x, PowerMonitoringConsoleEntry y)