Move event handlers to `LoadComplete`

This commit is contained in:
Dean Herbert 2022-07-08 15:09:16 +09:00
parent 32c77ddf71
commit eab3eba70e
1 changed files with 14 additions and 15 deletions

View File

@ -51,25 +51,24 @@ private void load(IAPIProvider api, SkinManager skinManager, OsuConfigManager co
AddInternal(seasonalBackgroundLoader);
user.ValueChanged += _ => Scheduler.AddOnce(loadNextIfRequired);
skin.ValueChanged += _ => Scheduler.AddOnce(loadNextIfRequired);
source.ValueChanged += _ => Scheduler.AddOnce(loadNextIfRequired);
beatmap.ValueChanged += _ => Scheduler.AddOnce(loadNextIfRequired);
introSequence.ValueChanged += _ => Scheduler.AddOnce(loadNextIfRequired);
seasonalBackgroundLoader.SeasonalBackgroundChanged += () => Scheduler.AddOnce(loadNextIfRequired);
// Load first background asynchronously as part of BDL load.
currentDisplay = RNG.Next(0, background_count);
Next();
}
protected override void LoadComplete()
{
base.LoadComplete();
user.ValueChanged += _ => Scheduler.AddOnce(next);
skin.ValueChanged += _ => Scheduler.AddOnce(next);
source.ValueChanged += _ => Scheduler.AddOnce(next);
beatmap.ValueChanged += _ => Scheduler.AddOnce(next);
introSequence.ValueChanged += _ => Scheduler.AddOnce(next);
seasonalBackgroundLoader.SeasonalBackgroundChanged += () => Scheduler.AddOnce(next);
// helper function required for AddOnce usage.
void loadNextIfRequired()
{
if (!IsLoaded)
return;
Next();
}
void next() => Next();
}
private ScheduledDelegate nextTask;