Move user blurring into VIsualSettingsContainer

This commit is contained in:
David Zhao
2019-03-13 16:47:03 +09:00
parent 13f84e8d50
commit de6d8fc637
8 changed files with 107 additions and 128 deletions

View File

@ -17,49 +17,12 @@ namespace osu.Game.Screens.Play
protected new BackgroundScreenBeatmap Background => (BackgroundScreenBeatmap)base.Background;
protected const float BACKGROUND_FADE_DURATION = 800;
#region User Settings
protected Bindable<double> BlurLevel;
protected Bindable<bool> ShowStoryboard;
#endregion
[BackgroundDependencyLoader]
private void load(OsuConfigManager config)
{
BlurLevel = config.GetBindable<double>(OsuSetting.BlurLevel);
ShowStoryboard = config.GetBindable<bool>(OsuSetting.ShowStoryboard);
}
public override void OnEntering(IScreen last)
{
base.OnEntering(last);
BlurLevel.ValueChanged += _ => UpdateBackgroundElements();
InitializeBackgroundElements();
}
public override void OnResuming(IScreen last)
{
base.OnResuming(last);
InitializeBackgroundElements();
}
/// <summary>
/// Called once on entering screen. By Default, performs a full <see cref="UpdateBackgroundElements"/> call.
/// </summary>
protected virtual void InitializeBackgroundElements() => UpdateBackgroundElements();
/// <summary>
/// Called when background elements require updates, usually due to a user changing a setting.
/// </summary>
/// <param name="userChange"></param>
protected virtual void UpdateBackgroundElements()
{
if (!this.IsCurrentScreen()) return;
Background?.BlurTo(new Vector2((float)BlurLevel.Value * 25), BACKGROUND_FADE_DURATION, Easing.OutQuint);
}
}
}