Add statefulness to MenuCursor.

This commit is contained in:
Dean Herbert
2017-03-16 23:58:36 +09:00
parent 7110ab8e17
commit f9f31ca092
7 changed files with 40 additions and 10 deletions

View File

@ -220,7 +220,7 @@ namespace osu.Game
}
};
Cursor.Alpha = 0;
Cursor.State = Visibility.Hidden;
}
private bool globalHotkeyPressed(InputState state, KeyDownEventArgs args)
@ -264,10 +264,20 @@ namespace osu.Game
private Container overlayContent;
private OsuScreen currentScreen;
private void screenChanged(Screen newScreen)
{
currentScreen = newScreen as OsuScreen;
if (currentScreen == null)
{
Exit();
return;
}
//central game mode change logic.
if ((newScreen as OsuScreen)?.ShowOverlays != true)
if (currentScreen.ShowOverlays != true)
{
Toolbar.State = Visibility.Hidden;
musicController.State = Visibility.Hidden;
@ -278,13 +288,7 @@ namespace osu.Game
Toolbar.State = Visibility.Visible;
}
if (newScreen is MainMenu)
Cursor.FadeIn(100);
ScreenChanged?.Invoke(newScreen);
if (newScreen == null)
Exit();
}
protected override bool OnExiting()
@ -308,6 +312,8 @@ namespace osu.Game
if (intro?.ChildScreen != null)
intro.ChildScreen.Padding = new MarginPadding { Top = Toolbar.Position.Y + Toolbar.DrawHeight };
Cursor.State = currentScreen == null || currentScreen.HasLocalCursorDisplayed ? Visibility.Hidden : Visibility.Visible;
}
private void screenAdded(Screen newScreen)