mirror of
https://github.com/osukey/osukey.git
synced 2025-05-29 09:27:18 +09:00
Merge pull request #14096 from frenzibyte/processors-on-load-complete
Fix judgement processors provided to mods while not completely loaded
This commit is contained in:
commit
cf30f02f02
@ -8,7 +8,7 @@ namespace osu.Game.Rulesets.Mods
|
|||||||
public interface IApplicableToHealthProcessor : IApplicableMod
|
public interface IApplicableToHealthProcessor : IApplicableMod
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Provide a <see cref="HealthProcessor"/> to a mod. Called once on initialisation of a play instance.
|
/// Provides a loaded <see cref="HealthProcessor"/> to a mod. Called once on initialisation of a play instance.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
void ApplyToHealthProcessor(HealthProcessor healthProcessor);
|
void ApplyToHealthProcessor(HealthProcessor healthProcessor);
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ namespace osu.Game.Rulesets.Mods
|
|||||||
public interface IApplicableToScoreProcessor : IApplicableMod
|
public interface IApplicableToScoreProcessor : IApplicableMod
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Provide a <see cref="ScoreProcessor"/> to a mod. Called once on initialisation of a play instance.
|
/// Provides a loaded <see cref="ScoreProcessor"/> to a mod. Called once on initialisation of a play instance.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
void ApplyToScoreProcessor(ScoreProcessor scoreProcessor);
|
void ApplyToScoreProcessor(ScoreProcessor scoreProcessor);
|
||||||
|
|
||||||
|
@ -297,11 +297,19 @@ namespace osu.Game.Screens.Play
|
|||||||
ScoreProcessor.HasCompleted.BindValueChanged(scoreCompletionChanged);
|
ScoreProcessor.HasCompleted.BindValueChanged(scoreCompletionChanged);
|
||||||
HealthProcessor.Failed += onFail;
|
HealthProcessor.Failed += onFail;
|
||||||
|
|
||||||
foreach (var mod in Mods.Value.OfType<IApplicableToScoreProcessor>())
|
// Provide judgement processors to mods after they're loaded so that they're on the gameplay clock,
|
||||||
mod.ApplyToScoreProcessor(ScoreProcessor);
|
// this is required for mods that apply transforms to these processors.
|
||||||
|
ScoreProcessor.OnLoadComplete += _ =>
|
||||||
|
{
|
||||||
|
foreach (var mod in Mods.Value.OfType<IApplicableToScoreProcessor>())
|
||||||
|
mod.ApplyToScoreProcessor(ScoreProcessor);
|
||||||
|
};
|
||||||
|
|
||||||
foreach (var mod in Mods.Value.OfType<IApplicableToHealthProcessor>())
|
HealthProcessor.OnLoadComplete += _ =>
|
||||||
mod.ApplyToHealthProcessor(HealthProcessor);
|
{
|
||||||
|
foreach (var mod in Mods.Value.OfType<IApplicableToHealthProcessor>())
|
||||||
|
mod.ApplyToHealthProcessor(HealthProcessor);
|
||||||
|
};
|
||||||
|
|
||||||
IsBreakTime.BindTo(breakTracker.IsBreakTime);
|
IsBreakTime.BindTo(breakTracker.IsBreakTime);
|
||||||
IsBreakTime.BindValueChanged(onBreakTimeChanged, true);
|
IsBreakTime.BindValueChanged(onBreakTimeChanged, true);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user