diff --git a/osu.Game/Configuration/IGameplaySettings.cs b/osu.Game/Configuration/IGameplaySettings.cs
index a35bdd20d0b4..8d6653501723 100644
--- a/osu.Game/Configuration/IGameplaySettings.cs
+++ b/osu.Game/Configuration/IGameplaySettings.cs
@@ -8,7 +8,7 @@ namespace osu.Game.Configuration
{
///
/// A settings provider which generally sources from (global user settings)
- /// but can allow overriding settings by caching more locally. For instance, in the editor.
+ /// but can allow overriding settings by caching more locally. For instance, in the editor compose screen.
///
///
/// More settings can be moved into this interface as required.
diff --git a/osu.Game/Screens/Edit/Compose/ComposeScreen.cs b/osu.Game/Screens/Edit/Compose/ComposeScreen.cs
index 3d18b00e751b..d3c330c6d7c3 100644
--- a/osu.Game/Screens/Edit/Compose/ComposeScreen.cs
+++ b/osu.Game/Screens/Edit/Compose/ComposeScreen.cs
@@ -11,6 +11,7 @@
using osu.Framework.Graphics.Containers;
using osu.Framework.Platform;
using osu.Game.Beatmaps;
+using osu.Game.Configuration;
using osu.Game.Extensions;
using osu.Game.IO.Serialization;
using osu.Game.Rulesets;
@@ -19,7 +20,7 @@
namespace osu.Game.Screens.Edit.Compose
{
- public class ComposeScreen : EditorScreenWithTimeline
+ public class ComposeScreen : EditorScreenWithTimeline, IGameplaySettings
{
[Resolved]
private GameHost host { get; set; }
@@ -27,6 +28,9 @@ public class ComposeScreen : EditorScreenWithTimeline
[Resolved]
private EditorClock clock { get; set; }
+ [Resolved]
+ private IGameplaySettings globalGameplaySettings { get; set; }
+
private Bindable clipboard { get; set; }
private HitObjectComposer composer;
@@ -157,5 +161,12 @@ private string formatSelectionAsString()
}
#endregion
+
+ // Combo colour normalisation should not be applied in the editor.
+ // Note this doesn't affect editor test mode.
+ IBindable IGameplaySettings.ComboColourNormalisationAmount => new Bindable();
+
+ // Arguable.
+ IBindable IGameplaySettings.PositionalHitsoundsLevel => globalGameplaySettings.PositionalHitsoundsLevel;
}
}
diff --git a/osu.Game/Screens/Edit/Editor.cs b/osu.Game/Screens/Edit/Editor.cs
index bb390dfbf3dd..4c4411758102 100644
--- a/osu.Game/Screens/Edit/Editor.cs
+++ b/osu.Game/Screens/Edit/Editor.cs
@@ -58,8 +58,7 @@ namespace osu.Game.Screens.Edit
{
[Cached(typeof(IBeatSnapProvider))]
[Cached]
- public class Editor : ScreenWithBeatmapBackground, IKeyBindingHandler, IKeyBindingHandler, IBeatSnapProvider, ISamplePlaybackDisabler, IBeatSyncProvider,
- IGameplaySettings
+ public class Editor : ScreenWithBeatmapBackground, IKeyBindingHandler, IKeyBindingHandler, IBeatSnapProvider, ISamplePlaybackDisabler, IBeatSyncProvider
{
public override float BackgroundParallaxAmount => 0.1f;
@@ -99,9 +98,6 @@ protected bool HasUnsavedChanges
[Resolved(canBeNull: true)]
private INotificationOverlay notifications { get; set; }
- [Resolved]
- private IGameplaySettings globalGameplaySettings { get; set; }
-
public readonly Bindable Mode = new Bindable();
public IBindable SamplePlaybackDisabled => samplePlaybackDisabled;
@@ -1045,11 +1041,5 @@ public BeatmapEditorToast(LocalisableString value, string beatmapDisplayName)
{
}
}
-
- // Combo colour normalisation should not be applied in the editor.
- IBindable IGameplaySettings.ComboColourNormalisationAmount => new Bindable();
-
- // Arguable.
- IBindable IGameplaySettings.PositionalHitsoundsLevel => globalGameplaySettings.PositionalHitsoundsLevel;
}
}
diff --git a/osu.Game/Screens/Edit/GameplayTest/EditorPlayer.cs b/osu.Game/Screens/Edit/GameplayTest/EditorPlayer.cs
index 7fc62b3c14a0..393ed4ef2e86 100644
--- a/osu.Game/Screens/Edit/GameplayTest/EditorPlayer.cs
+++ b/osu.Game/Screens/Edit/GameplayTest/EditorPlayer.cs
@@ -2,16 +2,14 @@
// See the LICENCE file in the repository root for full licence text.
using osu.Framework.Allocation;
-using osu.Framework.Bindables;
using osu.Framework.Screens;
using osu.Game.Beatmaps;
-using osu.Game.Configuration;
using osu.Game.Overlays;
using osu.Game.Screens.Play;
namespace osu.Game.Screens.Edit.GameplayTest
{
- public class EditorPlayer : Player, IGameplaySettings
+ public class EditorPlayer : Player
{
private readonly Editor editor;
private readonly EditorState editorState;
@@ -19,8 +17,6 @@ public class EditorPlayer : Player, IGameplaySettings
[Resolved]
private MusicController musicController { get; set; } = null!;
- private OsuConfigManager config = null!;
-
public EditorPlayer(Editor editor)
: base(new PlayerConfiguration { ShowResults = false })
{
@@ -28,14 +24,6 @@ public EditorPlayer(Editor editor)
editorState = editor.GetState();
}
- protected override IReadOnlyDependencyContainer CreateChildDependencies(IReadOnlyDependencyContainer parent)
- {
- // needs to be populated before BDL to work correctly.
- config = parent.Get();
-
- return base.CreateChildDependencies(parent);
- }
-
protected override GameplayClockContainer CreateGameplayClockContainer(WorkingBeatmap beatmap, double gameplayStart)
{
var masterGameplayClockContainer = new MasterGameplayClockContainer(beatmap, gameplayStart);
@@ -84,9 +72,5 @@ public override bool OnExiting(ScreenExitEvent e)
editor.RestoreState(editorState);
return base.OnExiting(e);
}
-
- // Editor overrides but we actually want to use game-wide settings here.
- public IBindable ComboColourNormalisationAmount => ((IGameplaySettings)config).ComboColourNormalisationAmount;
- public IBindable PositionalHitsoundsLevel => ((IGameplaySettings)config).PositionalHitsoundsLevel;
}
}