mirror of
https://github.com/ppy/osu
synced 2024-12-12 01:48:49 +00:00
Change multiplayer leaderboard to always hide during gameplay unless holding-for-HUD
This commit is contained in:
parent
1c36995606
commit
d05cd69087
@ -43,6 +43,8 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
|
|||||||
|
|
||||||
private readonly MultiplayerRoomUser[] users;
|
private readonly MultiplayerRoomUser[] users;
|
||||||
|
|
||||||
|
private readonly Bindable<bool> leaderboardExpanded = new BindableBool();
|
||||||
|
|
||||||
private LoadingLayer loadingDisplay;
|
private LoadingLayer loadingDisplay;
|
||||||
private FillFlowContainer leaderboardFlow;
|
private FillFlowContainer leaderboardFlow;
|
||||||
|
|
||||||
@ -76,13 +78,16 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
|
|||||||
Spacing = new Vector2(5)
|
Spacing = new Vector2(5)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
HUDOverlay.HoldingForHUD.BindValueChanged(_ => updateLeaderboardExpandedState());
|
||||||
|
LocalUserPlaying.BindValueChanged(_ => updateLeaderboardExpandedState(), true);
|
||||||
|
|
||||||
// todo: this should be implemented via a custom HUD implementation, and correctly masked to the main content area.
|
// todo: this should be implemented via a custom HUD implementation, and correctly masked to the main content area.
|
||||||
LoadComponentAsync(leaderboard = new MultiplayerGameplayLeaderboard(GameplayState.Ruleset.RulesetInfo, ScoreProcessor, users), l =>
|
LoadComponentAsync(leaderboard = new MultiplayerGameplayLeaderboard(GameplayState.Ruleset.RulesetInfo, ScoreProcessor, users), l =>
|
||||||
{
|
{
|
||||||
if (!LoadedBeatmapSuccessfully)
|
if (!LoadedBeatmapSuccessfully)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
((IBindable<bool>)leaderboard.Expanded).BindTo(HUDOverlay.ShowHud);
|
leaderboard.Expanded.BindTo(leaderboardExpanded);
|
||||||
|
|
||||||
leaderboardFlow.Insert(0, l);
|
leaderboardFlow.Insert(0, l);
|
||||||
|
|
||||||
@ -99,7 +104,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
|
|||||||
|
|
||||||
LoadComponentAsync(new GameplayChatDisplay(Room)
|
LoadComponentAsync(new GameplayChatDisplay(Room)
|
||||||
{
|
{
|
||||||
Expanded = { BindTarget = HUDOverlay.ShowHud },
|
Expanded = { BindTarget = leaderboardExpanded },
|
||||||
}, chat => leaderboardFlow.Insert(2, chat));
|
}, chat => leaderboardFlow.Insert(2, chat));
|
||||||
|
|
||||||
HUDOverlay.Add(loadingDisplay = new LoadingLayer(true) { Depth = float.MaxValue });
|
HUDOverlay.Add(loadingDisplay = new LoadingLayer(true) { Depth = float.MaxValue });
|
||||||
@ -152,6 +157,9 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateLeaderboardExpandedState() =>
|
||||||
|
leaderboardExpanded.Value = !LocalUserPlaying.Value || HUDOverlay.HoldingForHUD.Value;
|
||||||
|
|
||||||
private void failAndBail(string message = null)
|
private void failAndBail(string message = null)
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(message))
|
if (!string.IsNullOrEmpty(message))
|
||||||
|
Loading…
Reference in New Issue
Block a user