diff --git a/osu.Game/Configuration/IGameplaySettings.cs b/osu.Game/Configuration/IGameplaySettings.cs
index a35bdd20d0..8d66535017 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 3d18b00e75..d3c330c6d7 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;
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 @@ using osu.Game.Screens.Edit.Compose.Components.Timeline;
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 @@ namespace osu.Game.Screens.Edit.Compose
[Resolved]
private EditorClock clock { get; set; }
+ [Resolved]
+ private IGameplaySettings globalGameplaySettings { get; set; }
+
private Bindable clipboard { get; set; }
private HitObjectComposer composer;
@@ -157,5 +161,12 @@ namespace osu.Game.Screens.Edit.Compose
}
#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 bb390dfbf3..4c44117581 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 @@ namespace osu.Game.Screens.Edit
[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 @@ namespace osu.Game.Screens.Edit
{
}
}
-
- // 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 94975b6b5e..393ed4ef2e 100644
--- a/osu.Game/Screens/Edit/GameplayTest/EditorPlayer.cs
+++ b/osu.Game/Screens/Edit/GameplayTest/EditorPlayer.cs
@@ -1,8 +1,6 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-#nullable disable
-
using osu.Framework.Allocation;
using osu.Framework.Screens;
using osu.Game.Beatmaps;
@@ -17,7 +15,7 @@ namespace osu.Game.Screens.Edit.GameplayTest
private readonly EditorState editorState;
[Resolved]
- private MusicController musicController { get; set; }
+ private MusicController musicController { get; set; } = null!;
public EditorPlayer(Editor editor)
: base(new PlayerConfiguration { ShowResults = false })