Fix issues with main menu -> editor loader transition

This commit is contained in:
Bartłomiej Dach
2021-09-05 20:24:07 +02:00
parent 74a129dc27
commit 7012a1d934
2 changed files with 30 additions and 7 deletions

View File

@ -3,10 +3,11 @@
using JetBrains.Annotations;
using osu.Framework.Allocation;
using osu.Framework.Graphics;
using osu.Framework.Screens;
using osu.Framework.Threading;
using osu.Game.Beatmaps;
using osu.Game.Screens.Play;
using osu.Game.Screens.Menu;
namespace osu.Game.Screens.Edit
{
@ -14,18 +15,29 @@ namespace osu.Game.Screens.Edit
/// Transition screen for the editor.
/// Used to avoid backing out to main menu/song select when switching difficulties from within the editor.
/// </summary>
public class EditorLoader : ScreenWithBeatmapBackground
public class EditorLoader : OsuScreen
{
public override float BackgroundParallaxAmount => 0.1f;
public override bool AllowBackButton => false;
public override bool HideOverlaysOnEnter => true;
public override bool DisallowExternalBeatmapRulesetChanges => true;
[Resolved]
private BeatmapManager beatmapManager { get; set; }
[CanBeNull]
private ScheduledDelegate scheduledDifficultySwitch;
public override void OnEntering(IScreen last)
protected override void LogoArriving(OsuLogo logo, bool resuming)
{
base.OnEntering(last);
pushEditor();
base.LogoArriving(logo, resuming);
// the push cannot happen in OnEntering() or similar (even if scheduled), because the transition from main menu will look bad.
// that is because this screen pushing the editor makes it no longer current, and OsuScreen checks if the screen is current
// before enqueueing this screen's LogoArriving onto the logo animation sequence.
logo.Delay(300).Schedule(pushEditor);
}
private void pushEditor()