Move event handlers to LoadComplete

This commit is contained in:
Dean Herbert 2022-07-08 15:09:16 +09:00
parent 32c77ddf71
commit eab3eba70e

View File

@ -51,25 +51,24 @@ namespace osu.Game.Screens.Backgrounds
AddInternal(seasonalBackgroundLoader); AddInternal(seasonalBackgroundLoader);
user.ValueChanged += _ => Scheduler.AddOnce(loadNextIfRequired); // Load first background asynchronously as part of BDL load.
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);
currentDisplay = RNG.Next(0, background_count); currentDisplay = RNG.Next(0, background_count);
Next(); 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. // helper function required for AddOnce usage.
void loadNextIfRequired() void next() => Next();
{
if (!IsLoaded)
return;
Next();
}
} }
private ScheduledDelegate nextTask; private ScheduledDelegate nextTask;