mirror of
https://github.com/ppy/osu.git
synced 2025-01-09 15:43:21 +08:00
Merge pull request #4142 from ProgrammaticNajel/fix-multiplayer-parallax-overflow
Fix multiplayer screen "pushed" by notifications overlay parallax
This commit is contained in:
commit
6b9841c0fa
@ -22,16 +22,12 @@ using osu.Game.Graphics.Containers;
|
|||||||
using osu.Game.Rulesets;
|
using osu.Game.Rulesets;
|
||||||
using osu.Game.Graphics.UserInterface;
|
using osu.Game.Graphics.UserInterface;
|
||||||
using osu.Game.Overlays.Mods.Sections;
|
using osu.Game.Overlays.Mods.Sections;
|
||||||
|
using osu.Game.Screens;
|
||||||
|
|
||||||
namespace osu.Game.Overlays.Mods
|
namespace osu.Game.Overlays.Mods
|
||||||
{
|
{
|
||||||
public class ModSelectOverlay : WaveOverlayContainer
|
public class ModSelectOverlay : WaveOverlayContainer
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// How much this container should overflow the sides of the screen to account for parallax shifting.
|
|
||||||
/// </summary>
|
|
||||||
private const float overflow_padding = 50;
|
|
||||||
|
|
||||||
private const float content_width = 0.8f;
|
private const float content_width = 0.8f;
|
||||||
|
|
||||||
protected Color4 LowMultiplierColour, HighMultiplierColour;
|
protected Color4 LowMultiplierColour, HighMultiplierColour;
|
||||||
@ -203,11 +199,7 @@ namespace osu.Game.Overlays.Mods
|
|||||||
Waves.FourthWaveColour = OsuColour.FromHex(@"003a4e");
|
Waves.FourthWaveColour = OsuColour.FromHex(@"003a4e");
|
||||||
|
|
||||||
Height = 510;
|
Height = 510;
|
||||||
Padding = new MarginPadding
|
Padding = new MarginPadding { Horizontal = -OsuScreen.HORIZONTAL_OVERFLOW_PADDING };
|
||||||
{
|
|
||||||
Left = -overflow_padding,
|
|
||||||
Right = -overflow_padding
|
|
||||||
};
|
|
||||||
|
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
@ -267,11 +259,7 @@ namespace osu.Game.Overlays.Mods
|
|||||||
AutoSizeAxes = Axes.Y,
|
AutoSizeAxes = Axes.Y,
|
||||||
Direction = FillDirection.Vertical,
|
Direction = FillDirection.Vertical,
|
||||||
Width = content_width,
|
Width = content_width,
|
||||||
Padding = new MarginPadding
|
Padding = new MarginPadding { Horizontal = OsuScreen.HORIZONTAL_OVERFLOW_PADDING },
|
||||||
{
|
|
||||||
Left = overflow_padding,
|
|
||||||
Right = overflow_padding
|
|
||||||
},
|
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
new OsuSpriteText
|
new OsuSpriteText
|
||||||
@ -312,8 +300,7 @@ namespace osu.Game.Overlays.Mods
|
|||||||
Padding = new MarginPadding
|
Padding = new MarginPadding
|
||||||
{
|
{
|
||||||
Vertical = 10,
|
Vertical = 10,
|
||||||
Left = overflow_padding,
|
Horizontal = OsuScreen.HORIZONTAL_OVERFLOW_PADDING
|
||||||
Right = overflow_padding
|
|
||||||
},
|
},
|
||||||
Child = ModSectionsContainer = new FillFlowContainer<ModSection>
|
Child = ModSectionsContainer = new FillFlowContainer<ModSection>
|
||||||
{
|
{
|
||||||
@ -361,8 +348,7 @@ namespace osu.Game.Overlays.Mods
|
|||||||
Padding = new MarginPadding
|
Padding = new MarginPadding
|
||||||
{
|
{
|
||||||
Vertical = 15,
|
Vertical = 15,
|
||||||
Left = overflow_padding,
|
Horizontal = OsuScreen.HORIZONTAL_OVERFLOW_PADDING
|
||||||
Right = overflow_padding
|
|
||||||
},
|
},
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
|
@ -28,6 +28,11 @@ namespace osu.Game.Overlays.SearchableList
|
|||||||
protected abstract T DefaultTab { get; }
|
protected abstract T DefaultTab { get; }
|
||||||
protected virtual Drawable CreateSupplementaryControls() => null;
|
protected virtual Drawable CreateSupplementaryControls() => null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The amount of padding added to content (does not affect background or tab control strip).
|
||||||
|
/// </summary>
|
||||||
|
protected virtual float ContentHorizontalPadding => SearchableListOverlay.WIDTH_PADDING;
|
||||||
|
|
||||||
protected SearchableListFilterControl()
|
protected SearchableListFilterControl()
|
||||||
{
|
{
|
||||||
if (!typeof(T).IsEnum)
|
if (!typeof(T).IsEnum)
|
||||||
@ -62,7 +67,11 @@ namespace osu.Game.Overlays.SearchableList
|
|||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.X,
|
RelativeSizeAxes = Axes.X,
|
||||||
AutoSizeAxes = Axes.Y,
|
AutoSizeAxes = Axes.Y,
|
||||||
Padding = new MarginPadding { Top = padding, Horizontal = SearchableListOverlay.WIDTH_PADDING },
|
Padding = new MarginPadding
|
||||||
|
{
|
||||||
|
Top = padding,
|
||||||
|
Horizontal = ContentHorizontalPadding
|
||||||
|
},
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
Search = new FilterSearchTextBox
|
Search = new FilterSearchTextBox
|
||||||
|
@ -37,7 +37,7 @@ namespace osu.Game.Screens.Multi
|
|||||||
new Container
|
new Container
|
||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.Both,
|
RelativeSizeAxes = Axes.Both,
|
||||||
Padding = new MarginPadding { Horizontal = SearchableListOverlay.WIDTH_PADDING },
|
Padding = new MarginPadding { Horizontal = SearchableListOverlay.WIDTH_PADDING + OsuScreen.HORIZONTAL_OVERFLOW_PADDING },
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
new FillFlowContainer
|
new FillFlowContainer
|
||||||
|
@ -13,6 +13,8 @@ namespace osu.Game.Screens.Multi.Lounge.Components
|
|||||||
protected override Color4 BackgroundColour => OsuColour.FromHex(@"362e42");
|
protected override Color4 BackgroundColour => OsuColour.FromHex(@"362e42");
|
||||||
protected override PrimaryFilter DefaultTab => PrimaryFilter.Open;
|
protected override PrimaryFilter DefaultTab => PrimaryFilter.Open;
|
||||||
|
|
||||||
|
protected override float ContentHorizontalPadding => base.ContentHorizontalPadding + OsuScreen.HORIZONTAL_OVERFLOW_PADDING;
|
||||||
|
|
||||||
public FilterControl()
|
public FilterControl()
|
||||||
{
|
{
|
||||||
DisplayStyleControl.Hide();
|
DisplayStyleControl.Hide();
|
||||||
|
@ -91,8 +91,8 @@ namespace osu.Game.Screens.Multi.Lounge
|
|||||||
content.Padding = new MarginPadding
|
content.Padding = new MarginPadding
|
||||||
{
|
{
|
||||||
Top = Filter.DrawHeight,
|
Top = Filter.DrawHeight,
|
||||||
Left = SearchableListOverlay.WIDTH_PADDING - DrawableRoom.SELECTION_BORDER_WIDTH,
|
Left = SearchableListOverlay.WIDTH_PADDING - DrawableRoom.SELECTION_BORDER_WIDTH + HORIZONTAL_OVERFLOW_PADDING,
|
||||||
Right = SearchableListOverlay.WIDTH_PADDING,
|
Right = SearchableListOverlay.WIDTH_PADDING + HORIZONTAL_OVERFLOW_PADDING,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ namespace osu.Game.Screens.Multi.Match.Components
|
|||||||
new Container
|
new Container
|
||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.Both,
|
RelativeSizeAxes = Axes.Both,
|
||||||
Padding = new MarginPadding { Horizontal = SearchableListOverlay.WIDTH_PADDING },
|
Padding = new MarginPadding { Horizontal = SearchableListOverlay.WIDTH_PADDING + OsuScreen.HORIZONTAL_OVERFLOW_PADDING },
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
new FillFlowContainer
|
new FillFlowContainer
|
||||||
|
@ -41,7 +41,7 @@ namespace osu.Game.Screens.Multi.Match.Components
|
|||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.X,
|
RelativeSizeAxes = Axes.X,
|
||||||
AutoSizeAxes = Axes.Y,
|
AutoSizeAxes = Axes.Y,
|
||||||
Padding = new MarginPadding { Horizontal = SearchableListOverlay.WIDTH_PADDING },
|
Padding = new MarginPadding { Horizontal = SearchableListOverlay.WIDTH_PADDING + OsuScreen.HORIZONTAL_OVERFLOW_PADDING },
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
new FillFlowContainer
|
new FillFlowContainer
|
||||||
|
@ -79,7 +79,11 @@ namespace osu.Game.Screens.Multi.Match.Components
|
|||||||
{
|
{
|
||||||
new ScrollContainer
|
new ScrollContainer
|
||||||
{
|
{
|
||||||
Padding = new MarginPadding { Vertical = 10 },
|
Padding = new MarginPadding
|
||||||
|
{
|
||||||
|
Horizontal = OsuScreen.HORIZONTAL_OVERFLOW_PADDING,
|
||||||
|
Vertical = 10
|
||||||
|
},
|
||||||
RelativeSizeAxes = Axes.Both,
|
RelativeSizeAxes = Axes.Both,
|
||||||
Children = new[]
|
Children = new[]
|
||||||
{
|
{
|
||||||
@ -210,6 +214,7 @@ namespace osu.Game.Screens.Multi.Match.Components
|
|||||||
Direction = FillDirection.Vertical,
|
Direction = FillDirection.Vertical,
|
||||||
Spacing = new Vector2(0, 20),
|
Spacing = new Vector2(0, 20),
|
||||||
Margin = new MarginPadding { Vertical = 20 },
|
Margin = new MarginPadding { Vertical = 20 },
|
||||||
|
Padding = new MarginPadding { Horizontal = OsuScreen.HORIZONTAL_OVERFLOW_PADDING },
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
ApplyButton = new CreateRoomButton
|
ApplyButton = new CreateRoomButton
|
||||||
|
@ -75,13 +75,23 @@ namespace osu.Game.Screens.Multi.Match
|
|||||||
{
|
{
|
||||||
leaderboard = new MatchLeaderboard
|
leaderboard = new MatchLeaderboard
|
||||||
{
|
{
|
||||||
Padding = new MarginPadding(10),
|
Padding = new MarginPadding
|
||||||
|
{
|
||||||
|
Left = 10 + HORIZONTAL_OVERFLOW_PADDING,
|
||||||
|
Right = 10,
|
||||||
|
Vertical = 10,
|
||||||
|
},
|
||||||
RelativeSizeAxes = Axes.Both,
|
RelativeSizeAxes = Axes.Both,
|
||||||
Room = room
|
Room = room
|
||||||
},
|
},
|
||||||
new Container
|
new Container
|
||||||
{
|
{
|
||||||
Padding = new MarginPadding(10),
|
Padding = new MarginPadding
|
||||||
|
{
|
||||||
|
Left = 10,
|
||||||
|
Right = 10 + HORIZONTAL_OVERFLOW_PADDING,
|
||||||
|
Vertical = 10,
|
||||||
|
},
|
||||||
RelativeSizeAxes = Axes.Both,
|
RelativeSizeAxes = Axes.Both,
|
||||||
Child = chat = new MatchChatDisplay(room)
|
Child = chat = new MatchChatDisplay(room)
|
||||||
{
|
{
|
||||||
@ -108,7 +118,12 @@ namespace osu.Game.Screens.Multi.Match
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
header.OnRequestSelectBeatmap = () => Push(new MatchSongSelect { Selected = addPlaylistItem });
|
header.OnRequestSelectBeatmap = () => Push(new MatchSongSelect
|
||||||
|
{
|
||||||
|
Selected = addPlaylistItem,
|
||||||
|
Padding = new MarginPadding { Horizontal = HORIZONTAL_OVERFLOW_PADDING }
|
||||||
|
});
|
||||||
|
|
||||||
header.Tabs.Current.ValueChanged += t =>
|
header.Tabs.Current.ValueChanged += t =>
|
||||||
{
|
{
|
||||||
const float fade_duration = 500;
|
const float fade_duration = 500;
|
||||||
|
@ -48,6 +48,8 @@ namespace osu.Game.Screens.Multi
|
|||||||
RelativeSizeAxes = Axes.Both,
|
RelativeSizeAxes = Axes.Both,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Padding = new MarginPadding { Horizontal = -HORIZONTAL_OVERFLOW_PADDING };
|
||||||
|
|
||||||
waves.AddRange(new Drawable[]
|
waves.AddRange(new Drawable[]
|
||||||
{
|
{
|
||||||
new Container
|
new Container
|
||||||
@ -86,7 +88,7 @@ namespace osu.Game.Screens.Multi
|
|||||||
Margin = new MarginPadding
|
Margin = new MarginPadding
|
||||||
{
|
{
|
||||||
Top = 10,
|
Top = 10,
|
||||||
Right = 10,
|
Right = 10 + HORIZONTAL_OVERFLOW_PADDING,
|
||||||
},
|
},
|
||||||
Text = "Create room",
|
Text = "Create room",
|
||||||
Action = () => loungeSubScreen.Push(new Room
|
Action = () => loungeSubScreen.Push(new Room
|
||||||
|
@ -23,6 +23,12 @@ namespace osu.Game.Screens
|
|||||||
{
|
{
|
||||||
public abstract class OsuScreen : Screen, IKeyBindingHandler<GlobalAction>, IHasDescription
|
public abstract class OsuScreen : Screen, IKeyBindingHandler<GlobalAction>, IHasDescription
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The amount of negative padding that should be applied to game background content which touches both the left and right sides of the screen.
|
||||||
|
/// This allows for the game content to be pushed byt he options/notification overlays without causing black areas to appear.
|
||||||
|
/// </summary>
|
||||||
|
public const float HORIZONTAL_OVERFLOW_PADDING = 50;
|
||||||
|
|
||||||
public BackgroundScreen Background { get; private set; }
|
public BackgroundScreen Background { get; private set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
Loading…
Reference in New Issue
Block a user