feat(BuildCalc) Optimized the build calculator

This commit is contained in:
2022-04-13 15:13:06 -04:00
parent 656b914c6e
commit 39db0afbe5
22 changed files with 803 additions and 561 deletions
@@ -1,4 +1,7 @@
@implements IDisposable
@inject IJSRuntime jsRuntime;
@implements IDisposable
<Virtualize Items="@EconomyService.GetOverTime()" Context="economyAtSecond" ItemSize="400" OverscanCount="4">
<div style="display: grid; gap: 8px; grid-template-columns: 1fr 1fr;">
@@ -24,17 +27,26 @@
<br/>
</div>
<div>
@foreach (var order in BuildOrderService.GetOrdersAt(economyAtSecond.Interval))
@if (BuildOrderService.StartedOrders.TryGetValue(economyAtSecond.Interval, out var ordersAtTime))
{
<div>
Requested: @order.Info().Name
</div>
@foreach (var order in ordersAtTime)
{
<div>
Requested: @order.Info().Name
</div>
}
}
@foreach (var order in BuildOrderService.GetCompletedAt(economyAtSecond.Interval))
@if (BuildOrderService.CompletedOrders.TryGetValue(economyAtSecond.Interval, out var ordersCompletedAtTime))
{
<div>
New: @order.Info().Name
</div>
@foreach (var order in ordersCompletedAtTime)
{
<div>
New: @order.Info().Name
</div>
}
}
</div>
</div>
@@ -60,5 +72,21 @@
EconomyService.Unsubscribe(StateHasChanged);
BuildOrderService.Unsubscribe(StateHasChanged);
}
protected override bool ShouldRender()
{
#if DEBUG
jsRuntime.InvokeVoidAsync("console.time", "TimelineComponent");
#endif
return true;
}
protected override void OnAfterRender(bool firstRender)
{
#if DEBUG
jsRuntime.InvokeVoidAsync("console.timeEnd", "TimelineComponent");
#endif
}
}