Merge branch 'master' into fix-score-panel-list-keyboard-nav

This commit is contained in:
Dean Herbert 2021-09-09 12:12:16 +09:00 committed by GitHub
commit 199f5235a3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 166 additions and 148 deletions

View File

@ -31,12 +31,11 @@ If you are looking to install or test osu! without setting up a development envi
**Latest build:** **Latest build:**
| [Windows (x64)](https://github.com/ppy/osu/releases/latest/download/install.exe) | [macOS 10.12+](https://github.com/ppy/osu/releases/latest/download/osu.app.zip) | [Linux (x64)](https://github.com/ppy/osu/releases/latest/download/osu.AppImage) | [iOS(iOS 10+)](https://osu.ppy.sh/home/testflight) | [Android (5+)](https://github.com/ppy/osu/releases/latest/download/sh.ppy.osulazer.apk) | [Windows 8.1+ (x64)](https://github.com/ppy/osu/releases/latest/download/install.exe) | [macOS 10.12+](https://github.com/ppy/osu/releases/latest/download/osu.app.zip) | [Linux (x64)](https://github.com/ppy/osu/releases/latest/download/osu.AppImage) | [iOS 10+](https://osu.ppy.sh/home/testflight) | [Android 5+](https://github.com/ppy/osu/releases/latest/download/sh.ppy.osulazer.apk)
| ------------- | ------------- | ------------- | ------------- | ------------- | | ------------- | ------------- | ------------- | ------------- | ------------- |
- The iOS testflight link may fill up (Apple has a hard limit of 10,000 users). We reset it occasionally when this happens. Please do not ask about this. Check back regularly for link resets or follow [peppy](https://twitter.com/ppy) on twitter for announcements of link resets. - The iOS testflight link may fill up (Apple has a hard limit of 10,000 users). We reset it occasionally when this happens. Please do not ask about this. Check back regularly for link resets or follow [peppy](https://twitter.com/ppy) on twitter for announcements of link resets.
- When running on Windows 7 or 8.1, *[additional prerequisites](https://docs.microsoft.com/en-us/dotnet/core/install/windows?tabs=net50&pivots=os-windows#dependencies)** may be required to correctly run .NET 5 applications if your operating system is not up-to-date with the latest service packs.
If your platform is not listed above, there is still a chance you can manually build it by following the instructions below. If your platform is not listed above, there is still a chance you can manually build it by following the instructions below.
## Developing a custom ruleset ## Developing a custom ruleset

View File

@ -130,6 +130,8 @@ namespace osu.Game.Tests.Visual.Multiplayer
Type = { Value = MatchType.HeadToHead }, Type = { Value = MatchType.HeadToHead },
})); }));
AddUntilStep("wait for panel load", () => drawableRoom.ChildrenOfType<RecentParticipantsList>().Any());
AddAssert("password icon hidden", () => Precision.AlmostEquals(0, drawableRoom.ChildrenOfType<DrawableRoom.PasswordProtectedIcon>().Single().Alpha)); AddAssert("password icon hidden", () => Precision.AlmostEquals(0, drawableRoom.ChildrenOfType<DrawableRoom.PasswordProtectedIcon>().Single().Alpha));
AddStep("set password", () => room.Password.Value = "password"); AddStep("set password", () => room.Password.Value = "password");

View File

@ -32,6 +32,12 @@ namespace osu.Game.Tests.Visual.Playlists
private RoomsContainer roomsContainer => loungeScreen.ChildrenOfType<RoomsContainer>().First(); private RoomsContainer roomsContainer => loungeScreen.ChildrenOfType<RoomsContainer>().First();
[Test]
public void TestManyRooms()
{
AddStep("add rooms", () => RoomManager.AddRooms(500));
}
[Test] [Test]
public void TestScrollByDraggingRooms() public void TestScrollByDraggingRooms()
{ {

View File

@ -126,7 +126,7 @@ namespace osu.Game.Overlays.Changelog
}; };
supportLinkText.AddText("Support further development of osu! and "); supportLinkText.AddText("Support further development of osu! and ");
supportLinkText.AddLink("become and osu!supporter", "https://osu.ppy.sh/home/support", t => t.Font = t.Font.With(weight: FontWeight.Bold)); supportLinkText.AddLink("become an osu!supporter", "https://osu.ppy.sh/home/support", t => t.Font = t.Font.With(weight: FontWeight.Bold));
supportLinkText.AddText(" today!"); supportLinkText.AddText(" today!");
imageContainer.Children = new Drawable[] imageContainer.Children = new Drawable[]

View File

@ -43,6 +43,8 @@ namespace osu.Game.Screens.OnlinePlay.Lounge.Components
private PasswordProtectedIcon passwordIcon; private PasswordProtectedIcon passwordIcon;
private EndDateInfo endDateInfo; private EndDateInfo endDateInfo;
private DelayedLoadWrapper wrapper;
public DrawableRoom(Room room) public DrawableRoom(Room room)
{ {
Room = room; Room = room;
@ -63,6 +65,14 @@ namespace osu.Game.Screens.OnlinePlay.Lounge.Components
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
private void load(OverlayColourProvider colours) private void load(OverlayColourProvider colours)
{ {
ButtonsContainer = new Container
{
Anchor = Anchor.CentreRight,
Origin = Anchor.CentreRight,
RelativeSizeAxes = Axes.Y,
AutoSizeAxes = Axes.X
};
InternalChildren = new[] InternalChildren = new[]
{ {
// This resolves internal 1px gaps due to applying the (parenting) corner radius and masking across multiple filling background sprites. // This resolves internal 1px gaps due to applying the (parenting) corner radius and masking across multiple filling background sprites.
@ -75,6 +85,7 @@ namespace osu.Game.Screens.OnlinePlay.Lounge.Components
{ {
d.RelativeSizeAxes = Axes.Both; d.RelativeSizeAxes = Axes.Both;
}), }),
wrapper = new DelayedLoadWrapper(() =>
new Container new Container
{ {
Name = @"Room content", Name = @"Room content",
@ -205,13 +216,7 @@ namespace osu.Game.Screens.OnlinePlay.Lounge.Components
}, },
Children = new Drawable[] Children = new Drawable[]
{ {
ButtonsContainer = new Container ButtonsContainer,
{
Anchor = Anchor.CentreRight,
Origin = Anchor.CentreRight,
RelativeSizeAxes = Axes.Y,
AutoSizeAxes = Axes.X
},
recentParticipantsList = new RecentParticipantsList recentParticipantsList = new RecentParticipantsList
{ {
Anchor = Anchor.CentreRight, Anchor = Anchor.CentreRight,
@ -223,7 +228,10 @@ namespace osu.Game.Screens.OnlinePlay.Lounge.Components
passwordIcon = new PasswordProtectedIcon { Alpha = 0 } passwordIcon = new PasswordProtectedIcon { Alpha = 0 }
}, },
}, },
}, }, 0)
{
RelativeSizeAxes = Axes.Both,
}
}; };
} }
@ -231,6 +239,10 @@ namespace osu.Game.Screens.OnlinePlay.Lounge.Components
{ {
base.LoadComplete(); base.LoadComplete();
wrapper.DelayedLoadComplete += _ =>
{
wrapper.FadeInFromZero(200);
roomCategory.BindTo(Room.Category); roomCategory.BindTo(Room.Category);
roomCategory.BindValueChanged(c => roomCategory.BindValueChanged(c =>
{ {
@ -248,6 +260,7 @@ namespace osu.Game.Screens.OnlinePlay.Lounge.Components
hasPassword.BindTo(Room.HasPassword); hasPassword.BindTo(Room.HasPassword);
hasPassword.BindValueChanged(v => passwordIcon.Alpha = v.NewValue ? 1 : 0, true); hasPassword.BindValueChanged(v => passwordIcon.Alpha = v.NewValue ? 1 : 0, true);
};
} }
protected override IReadOnlyDependencyContainer CreateChildDependencies(IReadOnlyDependencyContainer parent) protected override IReadOnlyDependencyContainer CreateChildDependencies(IReadOnlyDependencyContainer parent)

View File

@ -83,12 +83,10 @@ namespace osu.Game.Screens.OnlinePlay.Lounge
{ {
base.LoadComplete(); base.LoadComplete();
if (matchingFilter) Alpha = matchingFilter ? 1 : 0;
this.FadeInFromZero(transition_duration); selectionBox.Alpha = SelectedRoom.Value == Room ? 1 : 0;
else
Alpha = 0;
SelectedRoom.BindValueChanged(updateSelectedRoom, true); SelectedRoom.BindValueChanged(updateSelectedRoom);
} }
private void updateSelectedRoom(ValueChangedEvent<Room> selected) private void updateSelectedRoom(ValueChangedEvent<Room> selected)