mirror of https://github.com/ppy/osu
Add overflow padding to account for parallax shifting
Added overflow padding in the Multiplayer screen, and adjusting content (LoungeSubScreen, FilterControl, Header, "Create Room" button) to account for this padding.
This commit is contained in:
parent
d53386cf4b
commit
7ac20c3545
|
@ -28,6 +28,12 @@ public abstract class SearchableListFilterControl<T, U> : Container
|
|||
protected abstract T DefaultTab { get; }
|
||||
protected virtual Drawable CreateSupplementaryControls() => null;
|
||||
|
||||
/// <summary>
|
||||
/// Add padding to internal components of the control.
|
||||
/// This does not affect the background and the tab strip.
|
||||
/// </summary>
|
||||
protected virtual float InternalPadding => 0;
|
||||
|
||||
protected SearchableListFilterControl()
|
||||
{
|
||||
if (!typeof(T).IsEnum)
|
||||
|
@ -62,7 +68,11 @@ protected SearchableListFilterControl()
|
|||
{
|
||||
RelativeSizeAxes = Axes.X,
|
||||
AutoSizeAxes = Axes.Y,
|
||||
Padding = new MarginPadding { Top = padding, Horizontal = SearchableListOverlay.WIDTH_PADDING },
|
||||
Padding = new MarginPadding
|
||||
{
|
||||
Top = padding,
|
||||
Horizontal = SearchableListOverlay.WIDTH_PADDING + InternalPadding
|
||||
},
|
||||
Children = new Drawable[]
|
||||
{
|
||||
Search = new FilterSearchTextBox
|
||||
|
|
|
@ -37,7 +37,7 @@ public Header(Screen initialScreen)
|
|||
new Container
|
||||
{
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Padding = new MarginPadding { Horizontal = SearchableListOverlay.WIDTH_PADDING },
|
||||
Padding = new MarginPadding { Horizontal = SearchableListOverlay.WIDTH_PADDING + Multiplayer.OVERFLOW_PADDING },
|
||||
Children = new Drawable[]
|
||||
{
|
||||
new FillFlowContainer
|
||||
|
|
|
@ -13,6 +13,8 @@ public class FilterControl : SearchableListFilterControl<PrimaryFilter, Secondar
|
|||
protected override Color4 BackgroundColour => OsuColour.FromHex(@"362e42");
|
||||
protected override PrimaryFilter DefaultTab => PrimaryFilter.Open;
|
||||
|
||||
protected override float InternalPadding => Multiplayer.OVERFLOW_PADDING;
|
||||
|
||||
public FilterControl()
|
||||
{
|
||||
DisplayStyleControl.Hide();
|
||||
|
|
|
@ -91,8 +91,8 @@ protected override void UpdateAfterChildren()
|
|||
content.Padding = new MarginPadding
|
||||
{
|
||||
Top = Filter.DrawHeight,
|
||||
Left = SearchableListOverlay.WIDTH_PADDING - DrawableRoom.SELECTION_BORDER_WIDTH,
|
||||
Right = SearchableListOverlay.WIDTH_PADDING,
|
||||
Left = SearchableListOverlay.WIDTH_PADDING - DrawableRoom.SELECTION_BORDER_WIDTH + Multiplayer.OVERFLOW_PADDING,
|
||||
Right = SearchableListOverlay.WIDTH_PADDING + Multiplayer.OVERFLOW_PADDING,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -26,6 +26,11 @@ namespace osu.Game.Screens.Multi
|
|||
[Cached]
|
||||
public class Multiplayer : OsuScreen, IOnlineComponent
|
||||
{
|
||||
/// <summary>
|
||||
///How much this container should overflow the sides of the screen to account for parallax shifting.
|
||||
/// </summary>
|
||||
public const float OVERFLOW_PADDING = 50;
|
||||
|
||||
private readonly MultiplayerWaveContainer waves;
|
||||
|
||||
public override bool AllowBeatmapRulesetChange => currentSubScreen?.AllowBeatmapRulesetChange ?? base.AllowBeatmapRulesetChange;
|
||||
|
@ -48,6 +53,12 @@ public Multiplayer()
|
|||
RelativeSizeAxes = Axes.Both,
|
||||
};
|
||||
|
||||
Padding = new MarginPadding
|
||||
{
|
||||
Left = -OVERFLOW_PADDING,
|
||||
Right = -OVERFLOW_PADDING
|
||||
};
|
||||
|
||||
waves.AddRange(new Drawable[]
|
||||
{
|
||||
new Container
|
||||
|
@ -86,7 +97,7 @@ public Multiplayer()
|
|||
Margin = new MarginPadding
|
||||
{
|
||||
Top = 10,
|
||||
Right = 10,
|
||||
Right = 10 + OVERFLOW_PADDING,
|
||||
},
|
||||
Text = "Create room",
|
||||
Action = () => loungeSubScreen.Push(new Room
|
||||
|
|
Loading…
Reference in New Issue