LoadReplayJob.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using System.Threading.Tasks;
  2. using Content.Client.Replay.UI.Loading;
  3. using Robust.Client.Replays.Loading;
  4. using Robust.Shared.ContentPack;
  5. using Robust.Shared.Utility;
  6. namespace Content.Client.Replay;
  7. public sealed class ContentLoadReplayJob : LoadReplayJob
  8. {
  9. private readonly LoadingScreen<bool> _screen;
  10. public ContentLoadReplayJob(
  11. float maxTime,
  12. IReplayFileReader fileReader,
  13. IReplayLoadManager loadMan,
  14. LoadingScreen<bool> screen)
  15. : base(maxTime, fileReader, loadMan)
  16. {
  17. _screen = screen;
  18. }
  19. protected override async Task Yield(float value, float maxValue, LoadingState state, bool force)
  20. {
  21. var header = Loc.GetString("replay-loading", ("cur", (int)state + 1), ("total", 5));
  22. var subText = Loc.GetString(state switch
  23. {
  24. LoadingState.ReadingFiles => "replay-loading-reading",
  25. LoadingState.ProcessingFiles => "replay-loading-processing",
  26. LoadingState.Spawning => "replay-loading-spawning",
  27. LoadingState.Initializing => "replay-loading-initializing",
  28. _ => "replay-loading-starting",
  29. });
  30. _screen.UpdateProgress(value, maxValue, header, subText);
  31. await base.Yield(value, maxValue, state, force);
  32. }
  33. }