mirror of
https://github.com/ppy/osu.git
synced 2024-09-22 12:07:23 +08:00
Add playfield bounds box with toggle and dim slider
This commit is contained in:
parent
0f91e41764
commit
321815f535
@ -99,6 +99,9 @@ namespace osu.Game.Configuration
|
|||||||
|
|
||||||
Set(OsuSetting.IncreaseFirstObjectVisibility, true);
|
Set(OsuSetting.IncreaseFirstObjectVisibility, true);
|
||||||
|
|
||||||
|
Set(OsuSetting.ShowPlayfieldArea, false);
|
||||||
|
Set(OsuSetting.PlayfieldAreaDimLevel, 0.1, 0, 1, 0.01);
|
||||||
|
|
||||||
// Update
|
// Update
|
||||||
Set(OsuSetting.ReleaseStream, ReleaseStream.Lazer);
|
Set(OsuSetting.ReleaseStream, ReleaseStream.Lazer);
|
||||||
|
|
||||||
@ -227,6 +230,8 @@ namespace osu.Game.Configuration
|
|||||||
IntroSequence,
|
IntroSequence,
|
||||||
UIHoldActivationDelay,
|
UIHoldActivationDelay,
|
||||||
HitLighting,
|
HitLighting,
|
||||||
MenuBackgroundSource
|
MenuBackgroundSource,
|
||||||
|
ShowPlayfieldArea,
|
||||||
|
PlayfieldAreaDimLevel
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -76,7 +76,19 @@ namespace osu.Game.Overlays.Settings.Sections.Gameplay
|
|||||||
{
|
{
|
||||||
LabelText = "Score display mode",
|
LabelText = "Score display mode",
|
||||||
Bindable = config.GetBindable<ScoringMode>(OsuSetting.ScoreDisplayMode)
|
Bindable = config.GetBindable<ScoringMode>(OsuSetting.ScoreDisplayMode)
|
||||||
}
|
},
|
||||||
|
new SettingsCheckbox
|
||||||
|
{
|
||||||
|
LabelText = "Show playfield area",
|
||||||
|
Bindable = config.GetBindable<bool>(OsuSetting.ShowPlayfieldArea)
|
||||||
|
},
|
||||||
|
new SettingsSlider<double>
|
||||||
|
{
|
||||||
|
LabelText = "Playfield area dim",
|
||||||
|
Bindable = config.GetBindable<double>(OsuSetting.PlayfieldAreaDimLevel),
|
||||||
|
KeyboardStep = 0.01f,
|
||||||
|
DisplayAsPercentage = true
|
||||||
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,9 @@ using osu.Framework.Extensions.IEnumerableExtensions;
|
|||||||
using osu.Framework.Graphics.Containers;
|
using osu.Framework.Graphics.Containers;
|
||||||
using osu.Game.Rulesets.Mods;
|
using osu.Game.Rulesets.Mods;
|
||||||
using osuTK;
|
using osuTK;
|
||||||
|
using osu.Framework.Graphics.Shapes;
|
||||||
|
using osuTK.Graphics;
|
||||||
|
using osu.Game.Configuration;
|
||||||
|
|
||||||
namespace osu.Game.Rulesets.UI
|
namespace osu.Game.Rulesets.UI
|
||||||
{
|
{
|
||||||
@ -51,6 +54,10 @@ namespace osu.Game.Rulesets.UI
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public readonly BindableBool DisplayJudgements = new BindableBool(true);
|
public readonly BindableBool DisplayJudgements = new BindableBool(true);
|
||||||
|
|
||||||
|
private Bindable<bool> showPlayfieldArea;
|
||||||
|
private Bindable<double> playfieldAreaDimLevel;
|
||||||
|
private Box playfieldArea;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates a new <see cref="Playfield"/>.
|
/// Creates a new <see cref="Playfield"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -65,7 +72,7 @@ namespace osu.Game.Rulesets.UI
|
|||||||
private IReadOnlyList<Mod> mods { get; set; }
|
private IReadOnlyList<Mod> mods { get; set; }
|
||||||
|
|
||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load()
|
private void load(OsuConfigManager config)
|
||||||
{
|
{
|
||||||
Cursor = CreateCursor();
|
Cursor = CreateCursor();
|
||||||
|
|
||||||
@ -76,6 +83,38 @@ namespace osu.Game.Rulesets.UI
|
|||||||
|
|
||||||
AddInternal(Cursor);
|
AddInternal(Cursor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
showPlayfieldArea = config.GetBindable<bool>(OsuSetting.ShowPlayfieldArea);
|
||||||
|
playfieldAreaDimLevel = config.GetBindable<double>(OsuSetting.PlayfieldAreaDimLevel);
|
||||||
|
showPlayfieldArea.ValueChanged += _ => UpdateVisuals();
|
||||||
|
playfieldAreaDimLevel.ValueChanged += _ => UpdateVisuals();
|
||||||
|
UpdateVisuals();
|
||||||
|
}
|
||||||
|
protected virtual void UpdateVisuals()
|
||||||
|
{
|
||||||
|
if(playfieldArea == null)
|
||||||
|
{
|
||||||
|
if (showPlayfieldArea.Value)
|
||||||
|
{
|
||||||
|
AddInternal(playfieldArea = new Box
|
||||||
|
{
|
||||||
|
RelativeSizeAxes = Axes.Both,
|
||||||
|
Colour = Color4.White,
|
||||||
|
Alpha = (float)playfieldAreaDimLevel.Value,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (showPlayfieldArea.Value)
|
||||||
|
{
|
||||||
|
playfieldArea.Alpha = (float)playfieldAreaDimLevel.Value;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
playfieldArea.Alpha = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -14,9 +14,11 @@ namespace osu.Game.Screens.Play.PlayerSettings
|
|||||||
|
|
||||||
private readonly PlayerSliderBar<double> dimSliderBar;
|
private readonly PlayerSliderBar<double> dimSliderBar;
|
||||||
private readonly PlayerSliderBar<double> blurSliderBar;
|
private readonly PlayerSliderBar<double> blurSliderBar;
|
||||||
|
private readonly PlayerSliderBar<double> playfieldAreaDimSliderBar;
|
||||||
private readonly PlayerCheckbox showStoryboardToggle;
|
private readonly PlayerCheckbox showStoryboardToggle;
|
||||||
private readonly PlayerCheckbox beatmapSkinsToggle;
|
private readonly PlayerCheckbox beatmapSkinsToggle;
|
||||||
private readonly PlayerCheckbox beatmapHitsoundsToggle;
|
private readonly PlayerCheckbox beatmapHitsoundsToggle;
|
||||||
|
private readonly PlayerCheckbox showPlayfieldAreaToggle;
|
||||||
|
|
||||||
public VisualSettings()
|
public VisualSettings()
|
||||||
{
|
{
|
||||||
@ -39,12 +41,21 @@ namespace osu.Game.Screens.Play.PlayerSettings
|
|||||||
DisplayAsPercentage = true
|
DisplayAsPercentage = true
|
||||||
},
|
},
|
||||||
new OsuSpriteText
|
new OsuSpriteText
|
||||||
|
{
|
||||||
|
Text = "Playfieldd area dim:"
|
||||||
|
},
|
||||||
|
playfieldAreaDimSliderBar = new PlayerSliderBar<double>
|
||||||
|
{
|
||||||
|
DisplayAsPercentage = true
|
||||||
|
},
|
||||||
|
new OsuSpriteText
|
||||||
{
|
{
|
||||||
Text = "Toggles:"
|
Text = "Toggles:"
|
||||||
},
|
},
|
||||||
showStoryboardToggle = new PlayerCheckbox { LabelText = "Storyboard / Video" },
|
showStoryboardToggle = new PlayerCheckbox { LabelText = "Storyboard / Video" },
|
||||||
beatmapSkinsToggle = new PlayerCheckbox { LabelText = "Beatmap skins" },
|
beatmapSkinsToggle = new PlayerCheckbox { LabelText = "Beatmap skins" },
|
||||||
beatmapHitsoundsToggle = new PlayerCheckbox { LabelText = "Beatmap hitsounds" }
|
beatmapHitsoundsToggle = new PlayerCheckbox { LabelText = "Beatmap hitsounds" },
|
||||||
|
showPlayfieldAreaToggle = new PlayerCheckbox { LabelText = "Show playfield area" }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,9 +64,11 @@ namespace osu.Game.Screens.Play.PlayerSettings
|
|||||||
{
|
{
|
||||||
dimSliderBar.Bindable = config.GetBindable<double>(OsuSetting.DimLevel);
|
dimSliderBar.Bindable = config.GetBindable<double>(OsuSetting.DimLevel);
|
||||||
blurSliderBar.Bindable = config.GetBindable<double>(OsuSetting.BlurLevel);
|
blurSliderBar.Bindable = config.GetBindable<double>(OsuSetting.BlurLevel);
|
||||||
|
playfieldAreaDimSliderBar.Bindable = config.GetBindable<double>(OsuSetting.PlayfieldAreaDimLevel);
|
||||||
showStoryboardToggle.Current = config.GetBindable<bool>(OsuSetting.ShowStoryboard);
|
showStoryboardToggle.Current = config.GetBindable<bool>(OsuSetting.ShowStoryboard);
|
||||||
beatmapSkinsToggle.Current = config.GetBindable<bool>(OsuSetting.BeatmapSkins);
|
beatmapSkinsToggle.Current = config.GetBindable<bool>(OsuSetting.BeatmapSkins);
|
||||||
beatmapHitsoundsToggle.Current = config.GetBindable<bool>(OsuSetting.BeatmapHitsounds);
|
beatmapHitsoundsToggle.Current = config.GetBindable<bool>(OsuSetting.BeatmapHitsounds);
|
||||||
|
showPlayfieldAreaToggle.Current = config.GetBindable<bool>(OsuSetting.ShowPlayfieldArea);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user