mirror of
https://github.com/osukey/osukey.git
synced 2025-06-05 12:57:39 +09:00
Add better screen hierarchy and placeholder for dev build disclaimer.
This commit is contained in:
parent
e6ef9f67aa
commit
fe3a6248ec
@ -19,19 +19,21 @@ namespace osu.Desktop
|
|||||||
{
|
{
|
||||||
class OsuGameDesktop : OsuGame
|
class OsuGameDesktop : OsuGame
|
||||||
{
|
{
|
||||||
|
private VersionManager versionManager;
|
||||||
|
|
||||||
|
public override bool IsDeployedBuild => versionManager.IsDeployedBuild;
|
||||||
|
|
||||||
public OsuGameDesktop(string[] args = null)
|
public OsuGameDesktop(string[] args = null)
|
||||||
: base(args)
|
: base(args)
|
||||||
{
|
{
|
||||||
|
versionManager = new VersionManager();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void LoadComplete()
|
protected override void LoadComplete()
|
||||||
{
|
{
|
||||||
base.LoadComplete();
|
base.LoadComplete();
|
||||||
|
|
||||||
VersionManager versionManager;
|
versionManager.Preload(this, Add);
|
||||||
(versionManager = new VersionManager()).Preload(this, Add);
|
|
||||||
Dependencies.Cache(versionManager);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SetHost(BasicGameHost host)
|
public override void SetHost(BasicGameHost host)
|
||||||
|
@ -25,7 +25,7 @@ namespace osu.Desktop.Overlays
|
|||||||
|
|
||||||
AssemblyName assembly = Assembly.GetEntryAssembly().GetName();
|
AssemblyName assembly = Assembly.GetEntryAssembly().GetName();
|
||||||
|
|
||||||
public bool IsReleaseBuild => assembly.Version.Major > 0;
|
public bool IsDeployedBuild => assembly.Version.Major > 0;
|
||||||
|
|
||||||
protected override bool HideOnEscape => false;
|
protected override bool HideOnEscape => false;
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ namespace osu.Desktop.Overlays
|
|||||||
Debug.Assert(isDebug = true);
|
Debug.Assert(isDebug = true);
|
||||||
|
|
||||||
string version;
|
string version;
|
||||||
if (!IsReleaseBuild)
|
if (!IsDeployedBuild)
|
||||||
{
|
{
|
||||||
version = @"local " + (isDebug ? @"debug" : @"release");
|
version = @"local " + (isDebug ? @"debug" : @"release");
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,8 @@ namespace osu.Game
|
|||||||
{
|
{
|
||||||
public class OsuGame : OsuGameBase
|
public class OsuGame : OsuGameBase
|
||||||
{
|
{
|
||||||
|
public virtual bool IsDeployedBuild => false;
|
||||||
|
|
||||||
public Toolbar Toolbar;
|
public Toolbar Toolbar;
|
||||||
|
|
||||||
private ChatOverlay chat;
|
private ChatOverlay chat;
|
||||||
@ -39,8 +41,16 @@ namespace osu.Game
|
|||||||
|
|
||||||
private NotificationManager notificationManager;
|
private NotificationManager notificationManager;
|
||||||
|
|
||||||
private MainMenu mainMenu => screenStack?.ChildGameScreen as MainMenu;
|
private Intro intro
|
||||||
private Intro intro => screenStack as Intro;
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
Screen s = screenStack;
|
||||||
|
while (s != null && !(s is Intro))
|
||||||
|
s = s.ChildScreen;
|
||||||
|
return s as Intro;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private OsuScreen screenStack;
|
private OsuScreen screenStack;
|
||||||
|
|
||||||
@ -106,7 +116,7 @@ namespace osu.Game
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
(screenStack = new Intro()).Preload(this, d =>
|
(screenStack = new Loader()).Preload(this, d =>
|
||||||
{
|
{
|
||||||
screenStack.ModePushed += screenAdded;
|
screenStack.ModePushed += screenAdded;
|
||||||
screenStack.Exited += screenRemoved;
|
screenStack.Exited += screenRemoved;
|
||||||
@ -148,7 +158,7 @@ namespace osu.Game
|
|||||||
(Toolbar = new Toolbar
|
(Toolbar = new Toolbar
|
||||||
{
|
{
|
||||||
Depth = -3,
|
Depth = -3,
|
||||||
OnHome = delegate { mainMenu?.MakeCurrent(); },
|
OnHome = delegate { intro?.ChildScreen?.MakeCurrent(); },
|
||||||
OnPlayModeChange = delegate (PlayMode m) { PlayMode.Value = m; },
|
OnPlayModeChange = delegate (PlayMode m) { PlayMode.Value = m; },
|
||||||
}).Preload(this, t =>
|
}).Preload(this, t =>
|
||||||
{
|
{
|
||||||
@ -226,7 +236,8 @@ namespace osu.Game
|
|||||||
Toolbar.State = Visibility.Visible;
|
Toolbar.State = Visibility.Visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
Cursor.FadeIn(100);
|
if (newScreen is MainMenu)
|
||||||
|
Cursor.FadeIn(100);
|
||||||
|
|
||||||
ModeChanged?.Invoke(newScreen);
|
ModeChanged?.Invoke(newScreen);
|
||||||
|
|
||||||
@ -249,8 +260,8 @@ namespace osu.Game
|
|||||||
{
|
{
|
||||||
base.UpdateAfterChildren();
|
base.UpdateAfterChildren();
|
||||||
|
|
||||||
if (screenStack.ChildScreen != null)
|
if (intro?.ChildScreen != null)
|
||||||
screenStack.ChildScreen.Padding = new MarginPadding { Top = Toolbar.Position.Y + Toolbar.DrawHeight };
|
intro.ChildScreen.Padding = new MarginPadding { Top = Toolbar.Position.Y + Toolbar.DrawHeight };
|
||||||
}
|
}
|
||||||
|
|
||||||
private void screenAdded(Screen newScreen)
|
private void screenAdded(Screen newScreen)
|
||||||
|
28
osu.Game/Screens/Loader.cs
Normal file
28
osu.Game/Screens/Loader.cs
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
// Copyright (c) 2007-2017 ppy Pty Ltd <contact@ppy.sh>.
|
||||||
|
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||||
|
|
||||||
|
using osu.Framework.Allocation;
|
||||||
|
using osu.Framework.Screens;
|
||||||
|
using osu.Game.Screens.Menu;
|
||||||
|
|
||||||
|
namespace osu.Game.Screens
|
||||||
|
{
|
||||||
|
class Loader : OsuScreen
|
||||||
|
{
|
||||||
|
internal override bool ShowOverlays => false;
|
||||||
|
|
||||||
|
public Loader()
|
||||||
|
{
|
||||||
|
ValidForResume = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
[BackgroundDependencyLoader]
|
||||||
|
private void load(OsuGame game)
|
||||||
|
{
|
||||||
|
if (game.IsDeployedBuild)
|
||||||
|
new Disclaimer().Preload(game, d => Push((Screen)d));
|
||||||
|
else
|
||||||
|
new Intro().Preload(game, d => Push((Screen)d));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
38
osu.Game/Screens/Menu/Disclaimer.cs
Normal file
38
osu.Game/Screens/Menu/Disclaimer.cs
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
// Copyright (c) 2007-2017 ppy Pty Ltd <contact@ppy.sh>.
|
||||||
|
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using osu.Framework.Allocation;
|
||||||
|
using osu.Framework.Screens;
|
||||||
|
|
||||||
|
namespace osu.Game.Screens.Menu
|
||||||
|
{
|
||||||
|
class Disclaimer : OsuScreen
|
||||||
|
{
|
||||||
|
private Intro intro;
|
||||||
|
internal override bool ShowOverlays => false;
|
||||||
|
|
||||||
|
[BackgroundDependencyLoader]
|
||||||
|
private void load(OsuGame game)
|
||||||
|
{
|
||||||
|
(intro = new Intro()).Preload(game);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnEntering(Screen last)
|
||||||
|
{
|
||||||
|
base.OnEntering(last);
|
||||||
|
|
||||||
|
FadeInFromZero(100);
|
||||||
|
|
||||||
|
Delay(5000);
|
||||||
|
|
||||||
|
FadeOut(100);
|
||||||
|
|
||||||
|
Push(intro);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -28,7 +28,7 @@ namespace osu.Game.Screens.Menu
|
|||||||
private AudioSample seeya;
|
private AudioSample seeya;
|
||||||
private AudioTrack bgm;
|
private AudioTrack bgm;
|
||||||
|
|
||||||
internal override bool ShowOverlays => (ParentScreen as OsuScreen)?.ShowOverlays ?? false;
|
internal override bool ShowOverlays => false;
|
||||||
|
|
||||||
protected override BackgroundScreen CreateBackground() => new BackgroundScreenEmpty();
|
protected override BackgroundScreen CreateBackground() => new BackgroundScreenEmpty();
|
||||||
|
|
||||||
|
@ -131,7 +131,9 @@
|
|||||||
<Compile Include="Screens\Charts\ChartInfo.cs" />
|
<Compile Include="Screens\Charts\ChartInfo.cs" />
|
||||||
<Compile Include="Screens\Edit\Editor.cs" />
|
<Compile Include="Screens\Edit\Editor.cs" />
|
||||||
<Compile Include="Screens\GameScreenWhiteBox.cs" />
|
<Compile Include="Screens\GameScreenWhiteBox.cs" />
|
||||||
|
<Compile Include="Screens\Loader.cs" />
|
||||||
<Compile Include="Screens\Menu\Button.cs" />
|
<Compile Include="Screens\Menu\Button.cs" />
|
||||||
|
<Compile Include="Screens\Menu\Disclaimer.cs" />
|
||||||
<Compile Include="Screens\Menu\FlowContainerWithOrigin.cs" />
|
<Compile Include="Screens\Menu\FlowContainerWithOrigin.cs" />
|
||||||
<Compile Include="Screens\Menu\Intro.cs" />
|
<Compile Include="Screens\Menu\Intro.cs" />
|
||||||
<Compile Include="Screens\Menu\ButtonSystem.cs" />
|
<Compile Include="Screens\Menu\ButtonSystem.cs" />
|
||||||
|
Loading…
x
Reference in New Issue
Block a user