mirror of
https://github.com/ppy/osu.git
synced 2025-01-12 19:42:55 +08:00
Make Room.Name
non-bindable
This commit is contained in:
parent
a2a930aa35
commit
6160df1586
@ -40,7 +40,7 @@ namespace osu.Game.Tests.Visual.DailyChallenge
|
|||||||
var room = new Room
|
var room = new Room
|
||||||
{
|
{
|
||||||
RoomID = 1234,
|
RoomID = 1234,
|
||||||
Name = { Value = "Daily Challenge: June 4, 2024" },
|
Name = "Daily Challenge: June 4, 2024",
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem(TestResources.CreateTestBeatmapSetInfo().Beatmaps.First())
|
new PlaylistItem(TestResources.CreateTestBeatmapSetInfo().Beatmaps.First())
|
||||||
@ -63,7 +63,7 @@ namespace osu.Game.Tests.Visual.DailyChallenge
|
|||||||
var room = new Room
|
var room = new Room
|
||||||
{
|
{
|
||||||
RoomID = 1234,
|
RoomID = 1234,
|
||||||
Name = { Value = "Daily Challenge: June 4, 2024" },
|
Name = "Daily Challenge: June 4, 2024",
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem(TestResources.CreateTestBeatmapSetInfo().Beatmaps.First())
|
new PlaylistItem(TestResources.CreateTestBeatmapSetInfo().Beatmaps.First())
|
||||||
@ -92,7 +92,7 @@ namespace osu.Game.Tests.Visual.DailyChallenge
|
|||||||
var room = new Room
|
var room = new Room
|
||||||
{
|
{
|
||||||
RoomID = 1234,
|
RoomID = 1234,
|
||||||
Name = { Value = "Daily Challenge: June 4, 2024" },
|
Name = "Daily Challenge: June 4, 2024",
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem(TestResources.CreateTestBeatmapSetInfo().Beatmaps.First())
|
new PlaylistItem(TestResources.CreateTestBeatmapSetInfo().Beatmaps.First())
|
||||||
|
@ -69,7 +69,7 @@ namespace osu.Game.Tests.Visual.DailyChallenge
|
|||||||
API.Perform(new CreateRoomRequest(room = new Room
|
API.Perform(new CreateRoomRequest(room = new Room
|
||||||
{
|
{
|
||||||
RoomID = roomId,
|
RoomID = roomId,
|
||||||
Name = { Value = "Daily Challenge: June 4, 2024" },
|
Name = "Daily Challenge: June 4, 2024",
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem(CreateAPIBeatmap(new OsuRuleset().RulesetInfo))
|
new PlaylistItem(CreateAPIBeatmap(new OsuRuleset().RulesetInfo))
|
||||||
|
@ -43,7 +43,7 @@ namespace osu.Game.Tests.Visual.Menus
|
|||||||
getRoomRequest.TriggerSuccess(new Room
|
getRoomRequest.TriggerSuccess(new Room
|
||||||
{
|
{
|
||||||
RoomID = 1234,
|
RoomID = 1234,
|
||||||
Name = { Value = "Aug 8, 2024" },
|
Name = "Aug 8, 2024",
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem(beatmap)
|
new PlaylistItem(beatmap)
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||||
// See the LICENCE file in the repository root for full licence text.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
@ -30,16 +28,16 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
protected abstract QueueMode Mode { get; }
|
protected abstract QueueMode Mode { get; }
|
||||||
|
|
||||||
protected BeatmapInfo InitialBeatmap { get; private set; }
|
protected BeatmapInfo InitialBeatmap { get; private set; } = null!;
|
||||||
protected BeatmapInfo OtherBeatmap { get; private set; }
|
protected BeatmapInfo OtherBeatmap { get; private set; } = null!;
|
||||||
|
|
||||||
protected IScreen CurrentScreen => multiplayerComponents.CurrentScreen;
|
protected IScreen CurrentScreen => multiplayerComponents.CurrentScreen;
|
||||||
protected IScreen CurrentSubScreen => multiplayerComponents.MultiplayerScreen.CurrentSubScreen;
|
protected IScreen CurrentSubScreen => multiplayerComponents.MultiplayerScreen.CurrentSubScreen;
|
||||||
|
|
||||||
private BeatmapManager beatmaps;
|
private BeatmapManager beatmaps = null!;
|
||||||
private BeatmapSetInfo importedSet;
|
private BeatmapSetInfo importedSet = null!;
|
||||||
|
|
||||||
private TestMultiplayerComponents multiplayerComponents;
|
private TestMultiplayerComponents multiplayerComponents = null!;
|
||||||
|
|
||||||
protected TestMultiplayerClient MultiplayerClient => multiplayerComponents.MultiplayerClient;
|
protected TestMultiplayerClient MultiplayerClient => multiplayerComponents.MultiplayerClient;
|
||||||
|
|
||||||
@ -75,7 +73,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
AddUntilStep("wait for lounge", () => multiplayerComponents.ChildrenOfType<LoungeSubScreen>().SingleOrDefault()?.IsLoaded == true);
|
AddUntilStep("wait for lounge", () => multiplayerComponents.ChildrenOfType<LoungeSubScreen>().SingleOrDefault()?.IsLoaded == true);
|
||||||
AddStep("open room", () => multiplayerComponents.ChildrenOfType<LoungeSubScreen>().Single().Open(new Room
|
AddStep("open room", () => multiplayerComponents.ChildrenOfType<LoungeSubScreen>().Single().Open(new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
QueueMode = { Value = Mode },
|
QueueMode = { Value = Mode },
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||||
// See the LICENCE file in the repository root for full licence text.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
@ -32,12 +30,12 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
[Cached]
|
[Cached]
|
||||||
protected readonly OverlayColourProvider ColourProvider = new OverlayColourProvider(OverlayColourScheme.Plum);
|
protected readonly OverlayColourProvider ColourProvider = new OverlayColourProvider(OverlayColourScheme.Plum);
|
||||||
|
|
||||||
private readonly Bindable<Room> selectedRoom = new Bindable<Room>();
|
private readonly Bindable<Room?> selectedRoom = new Bindable<Room?>();
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TestMultipleStatuses()
|
public void TestMultipleStatuses()
|
||||||
{
|
{
|
||||||
FillFlowContainer rooms = null;
|
FillFlowContainer rooms = null!;
|
||||||
|
|
||||||
AddStep("create rooms", () =>
|
AddStep("create rooms", () =>
|
||||||
{
|
{
|
||||||
@ -77,7 +75,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createLoungeRoom(new Room
|
createLoungeRoom(new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Multiplayer room" },
|
Name = "Multiplayer room",
|
||||||
Status = { Value = new RoomStatusOpen() },
|
Status = { Value = new RoomStatusOpen() },
|
||||||
EndDate = { Value = DateTimeOffset.Now.AddDays(1) },
|
EndDate = { Value = DateTimeOffset.Now.AddDays(1) },
|
||||||
Type = { Value = MatchType.HeadToHead },
|
Type = { Value = MatchType.HeadToHead },
|
||||||
@ -86,7 +84,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
}),
|
}),
|
||||||
createLoungeRoom(new Room
|
createLoungeRoom(new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Private room" },
|
Name = "Private room",
|
||||||
Status = { Value = new RoomStatusOpenPrivate() },
|
Status = { Value = new RoomStatusOpenPrivate() },
|
||||||
HasPassword = { Value = true },
|
HasPassword = { Value = true },
|
||||||
EndDate = { Value = DateTimeOffset.Now.AddDays(1) },
|
EndDate = { Value = DateTimeOffset.Now.AddDays(1) },
|
||||||
@ -96,7 +94,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
}),
|
}),
|
||||||
createLoungeRoom(new Room
|
createLoungeRoom(new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Playlist room with multiple beatmaps" },
|
Name = "Playlist room with multiple beatmaps",
|
||||||
Status = { Value = new RoomStatusPlaying() },
|
Status = { Value = new RoomStatusPlaying() },
|
||||||
EndDate = { Value = DateTimeOffset.Now.AddDays(1) },
|
EndDate = { Value = DateTimeOffset.Now.AddDays(1) },
|
||||||
Playlist = { item1, item2 },
|
Playlist = { item1, item2 },
|
||||||
@ -104,19 +102,19 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
}),
|
}),
|
||||||
createLoungeRoom(new Room
|
createLoungeRoom(new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Finished room" },
|
Name = "Finished room",
|
||||||
Status = { Value = new RoomStatusEnded() },
|
Status = { Value = new RoomStatusEnded() },
|
||||||
EndDate = { Value = DateTimeOffset.Now },
|
EndDate = { Value = DateTimeOffset.Now },
|
||||||
}),
|
}),
|
||||||
createLoungeRoom(new Room
|
createLoungeRoom(new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Spotlight room" },
|
Name = "Spotlight room",
|
||||||
Status = { Value = new RoomStatusOpen() },
|
Status = { Value = new RoomStatusOpen() },
|
||||||
Category = { Value = RoomCategory.Spotlight },
|
Category = { Value = RoomCategory.Spotlight },
|
||||||
}),
|
}),
|
||||||
createLoungeRoom(new Room
|
createLoungeRoom(new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Featured artist room" },
|
Name = "Featured artist room",
|
||||||
Status = { Value = new RoomStatusOpen() },
|
Status = { Value = new RoomStatusOpen() },
|
||||||
Category = { Value = RoomCategory.FeaturedArtist },
|
Category = { Value = RoomCategory.FeaturedArtist },
|
||||||
}),
|
}),
|
||||||
@ -132,12 +130,12 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestEnableAndDisablePassword()
|
public void TestEnableAndDisablePassword()
|
||||||
{
|
{
|
||||||
DrawableRoom drawableRoom = null;
|
DrawableRoom drawableRoom = null!;
|
||||||
Room room = null;
|
Room room = null!;
|
||||||
|
|
||||||
AddStep("create room", () => Child = drawableRoom = createLoungeRoom(room = new Room
|
AddStep("create room", () => Child = drawableRoom = createLoungeRoom(room = new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Room with password" },
|
Name = "Room with password",
|
||||||
Status = { Value = new RoomStatusOpen() },
|
Status = { Value = new RoomStatusOpen() },
|
||||||
Type = { Value = MatchType.HeadToHead },
|
Type = { Value = MatchType.HeadToHead },
|
||||||
}));
|
}));
|
||||||
@ -166,30 +164,30 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
new DrawableMatchRoom(new Room
|
new DrawableMatchRoom(new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "A host-only room" },
|
Name = "A host-only room",
|
||||||
QueueMode = { Value = QueueMode.HostOnly },
|
QueueMode = { Value = QueueMode.HostOnly },
|
||||||
Type = { Value = MatchType.HeadToHead },
|
Type = { Value = MatchType.HeadToHead },
|
||||||
})
|
})
|
||||||
{
|
{
|
||||||
SelectedItem = new Bindable<PlaylistItem>()
|
SelectedItem = new Bindable<PlaylistItem?>()
|
||||||
},
|
},
|
||||||
new DrawableMatchRoom(new Room
|
new DrawableMatchRoom(new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "An all-players, team-versus room" },
|
Name = "An all-players, team-versus room",
|
||||||
QueueMode = { Value = QueueMode.AllPlayers },
|
QueueMode = { Value = QueueMode.AllPlayers },
|
||||||
Type = { Value = MatchType.TeamVersus }
|
Type = { Value = MatchType.TeamVersus }
|
||||||
})
|
})
|
||||||
{
|
{
|
||||||
SelectedItem = new Bindable<PlaylistItem>()
|
SelectedItem = new Bindable<PlaylistItem?>()
|
||||||
},
|
},
|
||||||
new DrawableMatchRoom(new Room
|
new DrawableMatchRoom(new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "A round-robin room" },
|
Name = "A round-robin room",
|
||||||
QueueMode = { Value = QueueMode.AllPlayersRoundRobin },
|
QueueMode = { Value = QueueMode.AllPlayersRoundRobin },
|
||||||
Type = { Value = MatchType.HeadToHead }
|
Type = { Value = MatchType.HeadToHead }
|
||||||
})
|
})
|
||||||
{
|
{
|
||||||
SelectedItem = new Bindable<PlaylistItem>()
|
SelectedItem = new Bindable<PlaylistItem?>()
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||||
// See the LICENCE file in the repository root for full licence text.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
@ -17,7 +15,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
public partial class TestSceneDrawableRoomParticipantsList : OnlinePlayTestScene
|
public partial class TestSceneDrawableRoomParticipantsList : OnlinePlayTestScene
|
||||||
{
|
{
|
||||||
private DrawableRoomParticipantsList list;
|
private DrawableRoomParticipantsList list = null!;
|
||||||
|
|
||||||
public override void SetUpSteps()
|
public override void SetUpSteps()
|
||||||
{
|
{
|
||||||
@ -27,7 +25,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
SelectedRoom.Value = new Room
|
SelectedRoom.Value = new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "test room" },
|
Name = "test room",
|
||||||
Host =
|
Host =
|
||||||
{
|
{
|
||||||
Value = new APIUser
|
Value = new APIUser
|
||||||
|
@ -103,7 +103,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
||||||
@ -238,7 +238,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
||||||
@ -259,7 +259,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
roomManager.AddServerSideRoom(new Room
|
roomManager.AddServerSideRoom(new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
||||||
@ -288,7 +288,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
roomManager.AddServerSideRoom(new Room
|
roomManager.AddServerSideRoom(new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
||||||
@ -317,7 +317,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Password = { Value = "password" },
|
Password = { Value = "password" },
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
@ -338,7 +338,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
roomManager.AddServerSideRoom(new Room
|
roomManager.AddServerSideRoom(new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Password = { Value = "password" },
|
Password = { Value = "password" },
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
@ -370,7 +370,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Password = { Value = "password" },
|
Password = { Value = "password" },
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
@ -401,7 +401,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
||||||
@ -430,7 +430,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
};
|
};
|
||||||
return new Room
|
return new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Playlist = { item }
|
Playlist = { item }
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
@ -471,7 +471,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
};
|
};
|
||||||
return new Room
|
return new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Playlist = { item }
|
Playlist = { item }
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
@ -512,7 +512,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
};
|
};
|
||||||
return new Room
|
return new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Playlist = { item }
|
Playlist = { item }
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
@ -548,7 +548,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
||||||
@ -581,7 +581,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
||||||
@ -620,7 +620,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
||||||
@ -639,7 +639,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
||||||
@ -679,7 +679,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
||||||
@ -724,7 +724,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
|
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
||||||
@ -754,7 +754,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
||||||
@ -791,7 +791,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
roomManager.AddServerSideRoom(new Room
|
roomManager.AddServerSideRoom(new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
QueueMode = { Value = QueueMode.AllPlayers },
|
QueueMode = { Value = QueueMode.AllPlayers },
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
@ -810,7 +810,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
AddStep("disable polling", () => this.ChildrenOfType<ListingPollingComponent>().Single().TimeBetweenPolls.Value = 0);
|
AddStep("disable polling", () => this.ChildrenOfType<ListingPollingComponent>().Single().TimeBetweenPolls.Value = 0);
|
||||||
AddStep("change server-side settings", () =>
|
AddStep("change server-side settings", () =>
|
||||||
{
|
{
|
||||||
roomManager.ServerSideRooms[0].Name.Value = "New name";
|
roomManager.ServerSideRooms[0].Name = "New name";
|
||||||
roomManager.ServerSideRooms[0].Playlist.Add(new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
roomManager.ServerSideRooms[0].Playlist.Add(new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
||||||
{
|
{
|
||||||
ID = 2,
|
ID = 2,
|
||||||
@ -825,7 +825,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
AddAssert("local room has correct settings", () =>
|
AddAssert("local room has correct settings", () =>
|
||||||
{
|
{
|
||||||
var localRoom = this.ChildrenOfType<MultiplayerMatchSubScreen>().Single().Room;
|
var localRoom = this.ChildrenOfType<MultiplayerMatchSubScreen>().Single().Room;
|
||||||
return localRoom.Name.Value == roomManager.ServerSideRooms[0].Name.Value
|
return localRoom.Name == roomManager.ServerSideRooms[0].Name
|
||||||
&& localRoom.Playlist.SequenceEqual(roomManager.ServerSideRooms[0].Playlist);
|
&& localRoom.Playlist.SequenceEqual(roomManager.ServerSideRooms[0].Playlist);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -836,7 +836,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
QueueMode = { Value = QueueMode.AllPlayers },
|
QueueMode = { Value = QueueMode.AllPlayers },
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
@ -872,7 +872,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
QueueMode = { Value = QueueMode.AllPlayers },
|
QueueMode = { Value = QueueMode.AllPlayers },
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
@ -911,7 +911,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
QueueMode = { Value = QueueMode.AllPlayers },
|
QueueMode = { Value = QueueMode.AllPlayers },
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
@ -942,7 +942,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
QueueMode = { Value = QueueMode.AllPlayers },
|
QueueMode = { Value = QueueMode.AllPlayers },
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
@ -976,7 +976,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
||||||
@ -1022,7 +1022,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
QueueMode = { Value = QueueMode.AllPlayers },
|
QueueMode = { Value = QueueMode.AllPlayers },
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
|
@ -69,7 +69,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
AddStep("load match", () =>
|
AddStep("load match", () =>
|
||||||
{
|
{
|
||||||
SelectedRoom.Value = new Room { Name = { Value = "Test Room" } };
|
SelectedRoom.Value = new Room { Name = "Test Room" };
|
||||||
LoadScreen(screen = new TestMultiplayerMatchSubScreen(SelectedRoom.Value));
|
LoadScreen(screen = new TestMultiplayerMatchSubScreen(SelectedRoom.Value));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -164,7 +164,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
RoomManager.CreateRoom(new Room
|
RoomManager.CreateRoom(new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "test name" },
|
Name = "test name",
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem(new TestBeatmap(Ruleset.Value).BeatmapInfo)
|
new PlaylistItem(new TestBeatmap(Ruleset.Value).BeatmapInfo)
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||||
// See the LICENCE file in the repository root for full licence text.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
@ -29,10 +27,10 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
public partial class TestSceneTeamVersus : ScreenTestScene
|
public partial class TestSceneTeamVersus : ScreenTestScene
|
||||||
{
|
{
|
||||||
private BeatmapManager beatmaps;
|
private BeatmapManager beatmaps = null!;
|
||||||
private BeatmapSetInfo importedSet;
|
private BeatmapSetInfo importedSet = null!;
|
||||||
|
|
||||||
private TestMultiplayerComponents multiplayerComponents;
|
private TestMultiplayerComponents multiplayerComponents = null!;
|
||||||
|
|
||||||
private TestMultiplayerClient multiplayerClient => multiplayerComponents.MultiplayerClient;
|
private TestMultiplayerClient multiplayerClient => multiplayerComponents.MultiplayerClient;
|
||||||
|
|
||||||
@ -64,7 +62,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Type = { Value = MatchType.TeamVersus },
|
Type = { Value = MatchType.TeamVersus },
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
@ -84,7 +82,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Type = { Value = MatchType.TeamVersus },
|
Type = { Value = MatchType.TeamVersus },
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
@ -121,7 +119,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Type = { Value = MatchType.HeadToHead },
|
Type = { Value = MatchType.HeadToHead },
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
@ -147,7 +145,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = "Test Room",
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||||
// See the LICENCE file in the repository root for full licence text.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using osu.Framework.Bindables;
|
using osu.Framework.Bindables;
|
||||||
@ -22,7 +20,7 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
{
|
{
|
||||||
protected new TestRoomManager RoomManager => (TestRoomManager)base.RoomManager;
|
protected new TestRoomManager RoomManager => (TestRoomManager)base.RoomManager;
|
||||||
|
|
||||||
private TestRoomSettings settings;
|
private TestRoomSettings settings = null!;
|
||||||
|
|
||||||
protected override OnlinePlayTestSceneDependencies CreateOnlinePlayDependencies() => new TestDependencies();
|
protected override OnlinePlayTestSceneDependencies CreateOnlinePlayDependencies() => new TestDependencies();
|
||||||
|
|
||||||
@ -47,19 +45,19 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
{
|
{
|
||||||
AddStep("clear name and beatmap", () =>
|
AddStep("clear name and beatmap", () =>
|
||||||
{
|
{
|
||||||
SelectedRoom.Value.Name.Value = "";
|
SelectedRoom.Value.Name = "";
|
||||||
SelectedRoom.Value.Playlist.Clear();
|
SelectedRoom.Value.Playlist.Clear();
|
||||||
});
|
});
|
||||||
|
|
||||||
AddAssert("button disabled", () => !settings.ApplyButton.Enabled.Value);
|
AddAssert("button disabled", () => !settings.ApplyButton.Enabled.Value);
|
||||||
|
|
||||||
AddStep("set name", () => SelectedRoom.Value.Name.Value = "Room name");
|
AddStep("set name", () => SelectedRoom.Value.Name = "Room name");
|
||||||
AddAssert("button disabled", () => !settings.ApplyButton.Enabled.Value);
|
AddAssert("button disabled", () => !settings.ApplyButton.Enabled.Value);
|
||||||
|
|
||||||
AddStep("set beatmap", () => SelectedRoom.Value.Playlist.Add(new PlaylistItem(CreateBeatmap(Ruleset.Value).BeatmapInfo)));
|
AddStep("set beatmap", () => SelectedRoom.Value.Playlist.Add(new PlaylistItem(CreateBeatmap(Ruleset.Value).BeatmapInfo)));
|
||||||
AddAssert("button enabled", () => settings.ApplyButton.Enabled.Value);
|
AddAssert("button enabled", () => settings.ApplyButton.Enabled.Value);
|
||||||
|
|
||||||
AddStep("clear name", () => SelectedRoom.Value.Name.Value = "");
|
AddStep("clear name", () => SelectedRoom.Value.Name = "");
|
||||||
AddAssert("button disabled", () => !settings.ApplyButton.Enabled.Value);
|
AddAssert("button disabled", () => !settings.ApplyButton.Enabled.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,7 +67,7 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
const string expected_name = "expected name";
|
const string expected_name = "expected name";
|
||||||
TimeSpan expectedDuration = TimeSpan.FromMinutes(15);
|
TimeSpan expectedDuration = TimeSpan.FromMinutes(15);
|
||||||
|
|
||||||
Room createdRoom = null;
|
Room createdRoom = null!;
|
||||||
|
|
||||||
AddStep("setup", () =>
|
AddStep("setup", () =>
|
||||||
{
|
{
|
||||||
@ -85,7 +83,7 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
});
|
});
|
||||||
|
|
||||||
AddStep("create room", () => settings.ApplyButton.Action.Invoke());
|
AddStep("create room", () => settings.ApplyButton.Action.Invoke());
|
||||||
AddAssert("has correct name", () => createdRoom.Name.Value == expected_name);
|
AddAssert("has correct name", () => createdRoom.Name == expected_name);
|
||||||
AddAssert("has correct duration", () => createdRoom.Duration.Value == expectedDuration);
|
AddAssert("has correct duration", () => createdRoom.Duration.Value == expectedDuration);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -94,13 +92,13 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
{
|
{
|
||||||
const string not_found_prefix = "beatmaps not found:";
|
const string not_found_prefix = "beatmaps not found:";
|
||||||
|
|
||||||
string errorMessage = null;
|
string errorMessage = null!;
|
||||||
|
|
||||||
AddStep("setup", () =>
|
AddStep("setup", () =>
|
||||||
{
|
{
|
||||||
var beatmap = CreateBeatmap(Ruleset.Value).BeatmapInfo;
|
var beatmap = CreateBeatmap(Ruleset.Value).BeatmapInfo;
|
||||||
|
|
||||||
SelectedRoom.Value.Name.Value = "Test Room";
|
SelectedRoom.Value.Name = "Test Room";
|
||||||
SelectedRoom.Value.Playlist.Add(new PlaylistItem(beatmap));
|
SelectedRoom.Value.Playlist.Add(new PlaylistItem(beatmap));
|
||||||
|
|
||||||
errorMessage = $"{not_found_prefix} {beatmap.OnlineID}";
|
errorMessage = $"{not_found_prefix} {beatmap.OnlineID}";
|
||||||
@ -127,7 +125,7 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
|
|
||||||
AddStep("setup", () =>
|
AddStep("setup", () =>
|
||||||
{
|
{
|
||||||
SelectedRoom.Value.Name.Value = "Test Room";
|
SelectedRoom.Value.Name = "Test Room";
|
||||||
SelectedRoom.Value.Playlist.Add(new PlaylistItem(CreateBeatmap(Ruleset.Value).BeatmapInfo));
|
SelectedRoom.Value.Playlist.Add(new PlaylistItem(CreateBeatmap(Ruleset.Value).BeatmapInfo));
|
||||||
|
|
||||||
RoomManager.CreateRequested = _ => failText;
|
RoomManager.CreateRequested = _ => failText;
|
||||||
@ -169,7 +167,7 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
|
|
||||||
protected class TestRoomManager : IRoomManager
|
protected class TestRoomManager : IRoomManager
|
||||||
{
|
{
|
||||||
public Func<Room, string> CreateRequested;
|
public Func<Room, string>? CreateRequested;
|
||||||
|
|
||||||
public event Action RoomsUpdated
|
public event Action RoomsUpdated
|
||||||
{
|
{
|
||||||
@ -187,7 +185,7 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
|
|
||||||
public void ClearRooms() => throw new NotImplementedException();
|
public void ClearRooms() => throw new NotImplementedException();
|
||||||
|
|
||||||
public void CreateRoom(Room room, Action<Room> onSuccess = null, Action<string> onError = null)
|
public void CreateRoom(Room room, Action<Room>? onSuccess = null, Action<string>? onError = null)
|
||||||
{
|
{
|
||||||
if (CreateRequested == null)
|
if (CreateRequested == null)
|
||||||
return;
|
return;
|
||||||
@ -200,7 +198,7 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
onSuccess?.Invoke(room);
|
onSuccess?.Invoke(room);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void JoinRoom(Room room, string password, Action<Room> onSuccess = null, Action<string> onError = null) => throw new NotImplementedException();
|
public void JoinRoom(Room room, string? password, Action<Room>? onSuccess = null, Action<string>? onError = null) => throw new NotImplementedException();
|
||||||
|
|
||||||
public void PartRoom() => throw new NotImplementedException();
|
public void PartRoom() => throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||||
// See the LICENCE file in the repository root for full licence text.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using JetBrains.Annotations;
|
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
using osu.Framework.Audio;
|
using osu.Framework.Audio;
|
||||||
@ -35,11 +32,9 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
{
|
{
|
||||||
public partial class TestScenePlaylistsRoomCreation : OnlinePlayTestScene
|
public partial class TestScenePlaylistsRoomCreation : OnlinePlayTestScene
|
||||||
{
|
{
|
||||||
private BeatmapManager manager;
|
private BeatmapManager manager = null!;
|
||||||
|
private TestPlaylistsRoomSubScreen match = null!;
|
||||||
private TestPlaylistsRoomSubScreen match;
|
private BeatmapSetInfo importedBeatmap = null!;
|
||||||
|
|
||||||
private BeatmapSetInfo importedBeatmap;
|
|
||||||
|
|
||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load(GameHost host, AudioManager audio)
|
private void load(GameHost host, AudioManager audio)
|
||||||
@ -52,11 +47,11 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
[SetUpSteps]
|
[SetUpSteps]
|
||||||
public void SetupSteps()
|
public void SetupSteps()
|
||||||
{
|
{
|
||||||
AddStep("set room", () => SelectedRoom!.Value = new Room());
|
AddStep("set room", () => SelectedRoom.Value = new Room());
|
||||||
|
|
||||||
importBeatmap();
|
importBeatmap();
|
||||||
|
|
||||||
AddStep("load match", () => LoadScreen(match = new TestPlaylistsRoomSubScreen(SelectedRoom!.Value)));
|
AddStep("load match", () => LoadScreen(match = new TestPlaylistsRoomSubScreen(SelectedRoom.Value)));
|
||||||
AddUntilStep("wait for load", () => match.IsCurrentScreen());
|
AddUntilStep("wait for load", () => match.IsCurrentScreen());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,7 +60,7 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
{
|
{
|
||||||
setupAndCreateRoom(room =>
|
setupAndCreateRoom(room =>
|
||||||
{
|
{
|
||||||
room.Name.Value = "my awesome room";
|
room.Name = "my awesome room";
|
||||||
room.Host.Value = API.LocalUser.Value;
|
room.Host.Value = API.LocalUser.Value;
|
||||||
room.RecentParticipants.Add(room.Host.Value);
|
room.RecentParticipants.Add(room.Host.Value);
|
||||||
room.EndDate.Value = DateTimeOffset.Now.AddMinutes(5);
|
room.EndDate.Value = DateTimeOffset.Now.AddMinutes(5);
|
||||||
@ -88,7 +83,7 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
{
|
{
|
||||||
setupAndCreateRoom(room =>
|
setupAndCreateRoom(room =>
|
||||||
{
|
{
|
||||||
room.Name.Value = "my awesome room";
|
room.Name = "my awesome room";
|
||||||
room.MaxAttempts.Value = 5;
|
room.MaxAttempts.Value = 5;
|
||||||
room.Host.Value = API.LocalUser.Value;
|
room.Host.Value = API.LocalUser.Value;
|
||||||
room.RecentParticipants.Add(room.Host.Value);
|
room.RecentParticipants.Add(room.Host.Value);
|
||||||
@ -107,7 +102,7 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
{
|
{
|
||||||
setupAndCreateRoom(room =>
|
setupAndCreateRoom(room =>
|
||||||
{
|
{
|
||||||
room.Name.Value = "my awesome room";
|
room.Name = "my awesome room";
|
||||||
room.Host.Value = API.LocalUser.Value;
|
room.Host.Value = API.LocalUser.Value;
|
||||||
room.Playlist.Add(new PlaylistItem(importedBeatmap.Beatmaps.First())
|
room.Playlist.Add(new PlaylistItem(importedBeatmap.Beatmaps.First())
|
||||||
{
|
{
|
||||||
@ -115,13 +110,13 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
AddAssert("first playlist item selected", () => match.SelectedItem.Value == SelectedRoom!.Value.Playlist[0]);
|
AddAssert("first playlist item selected", () => match.SelectedItem.Value == SelectedRoom.Value.Playlist[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TestBeatmapUpdatedOnReImport()
|
public void TestBeatmapUpdatedOnReImport()
|
||||||
{
|
{
|
||||||
string realHash = null;
|
string realHash = null!;
|
||||||
int realOnlineId = 0;
|
int realOnlineId = 0;
|
||||||
int realOnlineSetId = 0;
|
int realOnlineSetId = 0;
|
||||||
|
|
||||||
@ -139,26 +134,23 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
BeatmapInfo =
|
BeatmapInfo =
|
||||||
{
|
{
|
||||||
OnlineID = realOnlineId,
|
OnlineID = realOnlineId,
|
||||||
Metadata = new BeatmapMetadata(),
|
Metadata = new BeatmapMetadata()
|
||||||
BeatmapSet =
|
|
||||||
{
|
|
||||||
OnlineID = realOnlineSetId
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Debug.Assert(modifiedBeatmap.BeatmapInfo.BeatmapSet != null);
|
||||||
|
modifiedBeatmap.BeatmapInfo.BeatmapSet!.OnlineID = realOnlineSetId;
|
||||||
|
|
||||||
modifiedBeatmap.HitObjects.Clear();
|
modifiedBeatmap.HitObjects.Clear();
|
||||||
modifiedBeatmap.HitObjects.Add(new HitCircle { StartTime = 5000 });
|
modifiedBeatmap.HitObjects.Add(new HitCircle { StartTime = 5000 });
|
||||||
|
|
||||||
Debug.Assert(modifiedBeatmap.BeatmapInfo.BeatmapSet != null);
|
|
||||||
|
|
||||||
manager.Import(modifiedBeatmap.BeatmapInfo.BeatmapSet);
|
manager.Import(modifiedBeatmap.BeatmapInfo.BeatmapSet);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Create the room using the real beatmap values.
|
// Create the room using the real beatmap values.
|
||||||
setupAndCreateRoom(room =>
|
setupAndCreateRoom(room =>
|
||||||
{
|
{
|
||||||
room.Name.Value = "my awesome room";
|
room.Name = "my awesome room";
|
||||||
room.Host.Value = API.LocalUser.Value;
|
room.Host.Value = API.LocalUser.Value;
|
||||||
room.Playlist.Add(new PlaylistItem(new BeatmapInfo
|
room.Playlist.Add(new PlaylistItem(new BeatmapInfo
|
||||||
{
|
{
|
||||||
@ -181,17 +173,11 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
{
|
{
|
||||||
var originalBeatmap = new TestBeatmap(new OsuRuleset().RulesetInfo)
|
var originalBeatmap = new TestBeatmap(new OsuRuleset().RulesetInfo)
|
||||||
{
|
{
|
||||||
BeatmapInfo =
|
BeatmapInfo = { OnlineID = realOnlineId },
|
||||||
{
|
|
||||||
OnlineID = realOnlineId,
|
|
||||||
BeatmapSet =
|
|
||||||
{
|
|
||||||
OnlineID = realOnlineSetId
|
|
||||||
}
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Debug.Assert(originalBeatmap.BeatmapInfo.BeatmapSet != null);
|
Debug.Assert(originalBeatmap.BeatmapInfo.BeatmapSet != null);
|
||||||
|
originalBeatmap.BeatmapInfo.BeatmapSet.OnlineID = realOnlineSetId;
|
||||||
|
|
||||||
manager.Import(originalBeatmap.BeatmapInfo.BeatmapSet);
|
manager.Import(originalBeatmap.BeatmapInfo.BeatmapSet);
|
||||||
});
|
});
|
||||||
@ -201,7 +187,7 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
|
|
||||||
private void setupAndCreateRoom(Action<Room> room)
|
private void setupAndCreateRoom(Action<Room> room)
|
||||||
{
|
{
|
||||||
AddStep("setup room", () => room(SelectedRoom!.Value));
|
AddStep("setup room", () => room(SelectedRoom.Value));
|
||||||
|
|
||||||
AddStep("click create button", () =>
|
AddStep("click create button", () =>
|
||||||
{
|
{
|
||||||
@ -215,8 +201,7 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
var beatmap = CreateBeatmap(new OsuRuleset().RulesetInfo);
|
var beatmap = CreateBeatmap(new OsuRuleset().RulesetInfo);
|
||||||
|
|
||||||
Debug.Assert(beatmap.BeatmapInfo.BeatmapSet != null);
|
Debug.Assert(beatmap.BeatmapInfo.BeatmapSet != null);
|
||||||
|
importedBeatmap = manager.Import(beatmap.BeatmapInfo.BeatmapSet)!.Value.Detach();
|
||||||
importedBeatmap = manager.Import(beatmap.BeatmapInfo.BeatmapSet)?.Value.Detach();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
private partial class TestPlaylistsRoomSubScreen : PlaylistsRoomSubScreen
|
private partial class TestPlaylistsRoomSubScreen : PlaylistsRoomSubScreen
|
||||||
@ -226,8 +211,7 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
public new Bindable<WorkingBeatmap> Beatmap => base.Beatmap;
|
public new Bindable<WorkingBeatmap> Beatmap => base.Beatmap;
|
||||||
|
|
||||||
[Resolved(canBeNull: true)]
|
[Resolved(canBeNull: true)]
|
||||||
[CanBeNull]
|
private IDialogOverlay? dialogOverlay { get; set; }
|
||||||
private IDialogOverlay dialogOverlay { get; set; }
|
|
||||||
|
|
||||||
public TestPlaylistsRoomSubScreen(Room room)
|
public TestPlaylistsRoomSubScreen(Room room)
|
||||||
: base(room)
|
: base(room)
|
||||||
|
@ -459,7 +459,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
if (apiUser == null || apiRoom == null) return;
|
if (apiUser == null || apiRoom == null) return;
|
||||||
|
|
||||||
PostNotification?.Invoke(
|
PostNotification?.Invoke(
|
||||||
new UserAvatarNotification(apiUser, NotificationsStrings.InvitedYouToTheMultiplayer(apiUser.Username, apiRoom.Name.Value))
|
new UserAvatarNotification(apiUser, NotificationsStrings.InvitedYouToTheMultiplayer(apiUser.Username, apiRoom.Name))
|
||||||
{
|
{
|
||||||
Activated = () =>
|
Activated = () =>
|
||||||
{
|
{
|
||||||
@ -841,7 +841,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
|
|
||||||
// Update a few properties of the room instantaneously.
|
// Update a few properties of the room instantaneously.
|
||||||
Room.Settings = settings;
|
Room.Settings = settings;
|
||||||
APIRoom.Name.Value = Room.Settings.Name;
|
APIRoom.Name = Room.Settings.Name;
|
||||||
APIRoom.Password.Value = Room.Settings.Password;
|
APIRoom.Password.Value = Room.Settings.Password;
|
||||||
APIRoom.Status.Value = string.IsNullOrEmpty(Room.Settings.Password) ? new RoomStatusOpen() : new RoomStatusOpenPrivate();
|
APIRoom.Status.Value = string.IsNullOrEmpty(Room.Settings.Password) ? new RoomStatusOpen() : new RoomStatusOpenPrivate();
|
||||||
APIRoom.Type.Value = Room.Settings.MatchType;
|
APIRoom.Type.Value = Room.Settings.MatchType;
|
||||||
|
@ -30,6 +30,15 @@ namespace osu.Game.Online.Rooms
|
|||||||
set => SetField(ref roomId, value);
|
set => SetField(ref roomId, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The room name.
|
||||||
|
/// </summary>
|
||||||
|
public string Name
|
||||||
|
{
|
||||||
|
get => name;
|
||||||
|
set => SetField(ref name, value);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents the current item selected within the room.
|
/// Represents the current item selected within the room.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -45,13 +54,12 @@ namespace osu.Game.Online.Rooms
|
|||||||
[JsonProperty("id")]
|
[JsonProperty("id")]
|
||||||
private long? roomId;
|
private long? roomId;
|
||||||
|
|
||||||
|
[JsonProperty("name")]
|
||||||
|
private string name = string.Empty;
|
||||||
|
|
||||||
[JsonProperty("current_playlist_item")]
|
[JsonProperty("current_playlist_item")]
|
||||||
private PlaylistItem? currentPlaylistItem;
|
private PlaylistItem? currentPlaylistItem;
|
||||||
|
|
||||||
[Cached]
|
|
||||||
[JsonProperty("name")]
|
|
||||||
public readonly Bindable<string> Name = new Bindable<string>();
|
|
||||||
|
|
||||||
[Cached]
|
[Cached]
|
||||||
[JsonProperty("host")]
|
[JsonProperty("host")]
|
||||||
public readonly Bindable<APIUser?> Host = new Bindable<APIUser?>();
|
public readonly Bindable<APIUser?> Host = new Bindable<APIUser?>();
|
||||||
@ -205,7 +213,7 @@ namespace osu.Game.Online.Rooms
|
|||||||
public void CopyFrom(Room other)
|
public void CopyFrom(Room other)
|
||||||
{
|
{
|
||||||
RoomID = other.RoomID;
|
RoomID = other.RoomID;
|
||||||
Name.Value = other.Name.Value;
|
Name = other.Name;
|
||||||
|
|
||||||
Category.Value = other.Category.Value;
|
Category.Value = other.Category.Value;
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ namespace osu.Game.Screens.OnlinePlay.Components
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Logger.Error(ex, $"Failed to update room: {room.Name.Value}.");
|
Logger.Error(ex, $"Failed to update room: {room.Name}.");
|
||||||
|
|
||||||
ignoredRooms.Add(room.RoomID.Value);
|
ignoredRooms.Add(room.RoomID.Value);
|
||||||
rooms.Remove(room);
|
rooms.Remove(room);
|
||||||
|
@ -169,7 +169,7 @@ namespace osu.Game.Screens.OnlinePlay.DailyChallenge
|
|||||||
{
|
{
|
||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
Text = room.Name.Value.Split(':', StringSplitOptions.TrimEntries).Last(),
|
Text = room.Name.Split(':', StringSplitOptions.TrimEntries).Last(),
|
||||||
Margin = new MarginPadding { Horizontal = 10f, Vertical = 5f },
|
Margin = new MarginPadding { Horizontal = 10f, Vertical = 5f },
|
||||||
Shear = new Vector2(-OsuGame.SHEAR, 0f),
|
Shear = new Vector2(-OsuGame.SHEAR, 0f),
|
||||||
Font = OsuFont.GetFont(size: 32, weight: FontWeight.Light, typeface: Typeface.TorusAlternate),
|
Font = OsuFont.GetFont(size: 32, weight: FontWeight.Light, typeface: Typeface.TorusAlternate),
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
// See the LICENCE file in the repository root for full licence text.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
@ -26,6 +27,7 @@ using osu.Game.Overlays;
|
|||||||
using osu.Game.Screens.OnlinePlay.Components;
|
using osu.Game.Screens.OnlinePlay.Components;
|
||||||
using osuTK;
|
using osuTK;
|
||||||
using osuTK.Graphics;
|
using osuTK.Graphics;
|
||||||
|
using Container = osu.Framework.Graphics.Containers.Container;
|
||||||
|
|
||||||
namespace osu.Game.Screens.OnlinePlay.Lounge.Components
|
namespace osu.Game.Screens.OnlinePlay.Lounge.Components
|
||||||
{
|
{
|
||||||
@ -47,6 +49,7 @@ namespace osu.Game.Screens.OnlinePlay.Lounge.Components
|
|||||||
private RoomSpecialCategoryPill? specialCategoryPill;
|
private RoomSpecialCategoryPill? specialCategoryPill;
|
||||||
private PasswordProtectedIcon? passwordIcon;
|
private PasswordProtectedIcon? passwordIcon;
|
||||||
private EndDateInfo? endDateInfo;
|
private EndDateInfo? endDateInfo;
|
||||||
|
private SpriteText? roomName;
|
||||||
private UpdateableBeatmapBackgroundSprite background = null!;
|
private UpdateableBeatmapBackgroundSprite background = null!;
|
||||||
private DelayedLoadWrapper wrapper = null!;
|
private DelayedLoadWrapper wrapper = null!;
|
||||||
|
|
||||||
@ -181,11 +184,10 @@ namespace osu.Game.Screens.OnlinePlay.Lounge.Components
|
|||||||
Direction = FillDirection.Vertical,
|
Direction = FillDirection.Vertical,
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
new TruncatingSpriteText
|
roomName = new TruncatingSpriteText
|
||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.X,
|
RelativeSizeAxes = Axes.X,
|
||||||
Font = OsuFont.GetFont(size: 28),
|
Font = OsuFont.GetFont(size: 28)
|
||||||
Current = { BindTarget = Room.Name }
|
|
||||||
},
|
},
|
||||||
new RoomStatusText
|
new RoomStatusText
|
||||||
{
|
{
|
||||||
@ -247,6 +249,8 @@ namespace osu.Game.Screens.OnlinePlay.Lounge.Components
|
|||||||
{
|
{
|
||||||
base.LoadComplete();
|
base.LoadComplete();
|
||||||
|
|
||||||
|
Room.PropertyChanged += onRoomPropertyChanged;
|
||||||
|
|
||||||
wrapper.DelayedLoadComplete += _ =>
|
wrapper.DelayedLoadComplete += _ =>
|
||||||
{
|
{
|
||||||
Debug.Assert(specialCategoryPill != null);
|
Debug.Assert(specialCategoryPill != null);
|
||||||
@ -272,11 +276,25 @@ 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);
|
||||||
|
|
||||||
|
updateRoomName();
|
||||||
};
|
};
|
||||||
|
|
||||||
SelectedItem.BindValueChanged(item => background.Beatmap.Value = item.NewValue?.Beatmap, true);
|
SelectedItem.BindValueChanged(item => background.Beatmap.Value = item.NewValue?.Beatmap, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void onRoomPropertyChanged(object? sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.PropertyName == nameof(Room.Name))
|
||||||
|
updateRoomName();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateRoomName()
|
||||||
|
{
|
||||||
|
if (roomName != null)
|
||||||
|
roomName.Text = Room.Name;
|
||||||
|
}
|
||||||
|
|
||||||
protected override IReadOnlyDependencyContainer CreateChildDependencies(IReadOnlyDependencyContainer parent)
|
protected override IReadOnlyDependencyContainer CreateChildDependencies(IReadOnlyDependencyContainer parent)
|
||||||
{
|
{
|
||||||
return new CachedModelDependencyContainer<Room>(base.CreateChildDependencies(parent))
|
return new CachedModelDependencyContainer<Room>(base.CreateChildDependencies(parent))
|
||||||
@ -332,6 +350,12 @@ namespace osu.Game.Screens.OnlinePlay.Lounge.Components
|
|||||||
return pills;
|
return pills;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void Dispose(bool isDisposing)
|
||||||
|
{
|
||||||
|
base.Dispose(isDisposing);
|
||||||
|
Room.PropertyChanged -= onRoomPropertyChanged;
|
||||||
|
}
|
||||||
|
|
||||||
private partial class RoomStatusText : OnlinePlayComposite
|
private partial class RoomStatusText : OnlinePlayComposite
|
||||||
{
|
{
|
||||||
public readonly IBindable<PlaylistItem?> SelectedItem = new Bindable<PlaylistItem?>();
|
public readonly IBindable<PlaylistItem?> SelectedItem = new Bindable<PlaylistItem?>();
|
||||||
|
@ -121,7 +121,7 @@ namespace osu.Game.Screens.OnlinePlay.Lounge
|
|||||||
|
|
||||||
public bool FilteringActive { get; set; }
|
public bool FilteringActive { get; set; }
|
||||||
|
|
||||||
public IEnumerable<LocalisableString> FilterTerms => new LocalisableString[] { Room.Name.Value };
|
public IEnumerable<LocalisableString> FilterTerms => new LocalisableString[] { Room.Name };
|
||||||
|
|
||||||
private bool matchingFilter = true;
|
private bool matchingFilter = true;
|
||||||
|
|
||||||
|
@ -350,7 +350,6 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
|
|||||||
};
|
};
|
||||||
|
|
||||||
TypePicker.Current.BindValueChanged(type => typeLabel.Text = type.NewValue.GetLocalisableDescription(), true);
|
TypePicker.Current.BindValueChanged(type => typeLabel.Text = type.NewValue.GetLocalisableDescription(), true);
|
||||||
RoomName.BindValueChanged(name => NameField.Text = name.NewValue, true);
|
|
||||||
Type.BindValueChanged(type => TypePicker.Current.Value = type.NewValue, true);
|
Type.BindValueChanged(type => TypePicker.Current.Value = type.NewValue, true);
|
||||||
MaxParticipants.BindValueChanged(count => MaxParticipantsField.Text = count.NewValue?.ToString(), true);
|
MaxParticipants.BindValueChanged(count => MaxParticipantsField.Text = count.NewValue?.ToString(), true);
|
||||||
Password.BindValueChanged(password => PasswordTextBox.Text = password.NewValue ?? string.Empty, true);
|
Password.BindValueChanged(password => PasswordTextBox.Text = password.NewValue ?? string.Empty, true);
|
||||||
@ -374,8 +373,21 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
|
|||||||
|
|
||||||
drawablePlaylist.Items.BindTo(Playlist);
|
drawablePlaylist.Items.BindTo(Playlist);
|
||||||
drawablePlaylist.SelectedItem.BindTo(SelectedItem);
|
drawablePlaylist.SelectedItem.BindTo(SelectedItem);
|
||||||
|
|
||||||
|
room.PropertyChanged += onRoomPropertyChanged;
|
||||||
|
|
||||||
|
updateRoomName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void onRoomPropertyChanged(object? sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.PropertyName == nameof(Room.Name))
|
||||||
|
updateRoomName();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateRoomName()
|
||||||
|
=> NameField.Text = room.Name;
|
||||||
|
|
||||||
protected override void Update()
|
protected override void Update()
|
||||||
{
|
{
|
||||||
base.Update();
|
base.Update();
|
||||||
@ -417,7 +429,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
room.Name.Value = NameField.Text;
|
room.Name = NameField.Text;
|
||||||
room.Type.Value = TypePicker.Current.Value;
|
room.Type.Value = TypePicker.Current.Value;
|
||||||
room.Password.Value = PasswordTextBox.Current.Value;
|
room.Password.Value = PasswordTextBox.Current.Value;
|
||||||
room.QueueMode.Value = QueueModeDropdown.Current.Value;
|
room.QueueMode.Value = QueueModeDropdown.Current.Value;
|
||||||
@ -467,6 +479,12 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
|
|||||||
applyingSettingsOperation.Dispose();
|
applyingSettingsOperation.Dispose();
|
||||||
applyingSettingsOperation = null;
|
applyingSettingsOperation = null;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
protected override void Dispose(bool isDisposing)
|
||||||
|
{
|
||||||
|
base.Dispose(isDisposing);
|
||||||
|
room.PropertyChanged -= onRoomPropertyChanged;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public partial class CreateOrUpdateButton : RoundedButton
|
public partial class CreateOrUpdateButton : RoundedButton
|
||||||
|
@ -73,7 +73,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
|
|||||||
|
|
||||||
protected override Room CreateNewRoom() => new Room
|
protected override Room CreateNewRoom() => new Room
|
||||||
{
|
{
|
||||||
Name = { Value = $"{api.LocalUser}'s awesome room" },
|
Name = $"{api.LocalUser}'s awesome room",
|
||||||
Type = { Value = MatchType.HeadToHead },
|
Type = { Value = MatchType.HeadToHead },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
|
|||||||
public MultiplayerMatchSubScreen(Room room)
|
public MultiplayerMatchSubScreen(Room room)
|
||||||
: base(room)
|
: base(room)
|
||||||
{
|
{
|
||||||
Title = room.RoomID == null ? "New room" : room.Name.Value;
|
Title = room.RoomID == null ? "New room" : room.Name;
|
||||||
Activity.Value = new UserActivity.InLobby(room);
|
Activity.Value = new UserActivity.InLobby(room);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,9 +16,6 @@ namespace osu.Game.Screens.OnlinePlay
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class OnlinePlayComposite : CompositeDrawable
|
public partial class OnlinePlayComposite : CompositeDrawable
|
||||||
{
|
{
|
||||||
[Resolved(typeof(Room), nameof(Room.Name))]
|
|
||||||
protected Bindable<string> RoomName { get; private set; } = null!;
|
|
||||||
|
|
||||||
[Resolved(typeof(Room))]
|
[Resolved(typeof(Room))]
|
||||||
protected Bindable<APIUser> Host { get; private set; } = null!;
|
protected Bindable<APIUser> Host { get; private set; } = null!;
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
|
|||||||
{
|
{
|
||||||
return new Room
|
return new Room
|
||||||
{
|
{
|
||||||
Name = { Value = $"{api.LocalUser}'s awesome playlist" },
|
Name = $"{api.LocalUser}'s awesome playlist",
|
||||||
Type = { Value = MatchType.Playlists }
|
Type = { Value = MatchType.Playlists }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Specialized;
|
using System.Collections.Specialized;
|
||||||
|
using System.ComponentModel;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Humanizer;
|
using Humanizer;
|
||||||
using Humanizer.Localisation;
|
using Humanizer.Localisation;
|
||||||
@ -25,6 +26,7 @@ using osu.Game.Screens.OnlinePlay.Match.Components;
|
|||||||
using osuTK;
|
using osuTK;
|
||||||
using osu.Game.Localisation;
|
using osu.Game.Localisation;
|
||||||
using osu.Game.Rulesets;
|
using osu.Game.Rulesets;
|
||||||
|
using Container = osu.Framework.Graphics.Containers.Container;
|
||||||
|
|
||||||
namespace osu.Game.Screens.OnlinePlay.Playlists
|
namespace osu.Game.Screens.OnlinePlay.Playlists
|
||||||
{
|
{
|
||||||
@ -142,7 +144,8 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
|
|||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.X,
|
RelativeSizeAxes = Axes.X,
|
||||||
TabbableContentContainer = this,
|
TabbableContentContainer = this,
|
||||||
LengthLimit = 100
|
LengthLimit = 100,
|
||||||
|
Text = room.Name
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
new Section("Duration")
|
new Section("Duration")
|
||||||
@ -313,7 +316,6 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
|
|||||||
loadingLayer = new LoadingLayer(true)
|
loadingLayer = new LoadingLayer(true)
|
||||||
};
|
};
|
||||||
|
|
||||||
RoomName.BindValueChanged(name => NameField.Text = name.NewValue, true);
|
|
||||||
Availability.BindValueChanged(availability => AvailabilityPicker.Current.Value = availability.NewValue, true);
|
Availability.BindValueChanged(availability => AvailabilityPicker.Current.Value = availability.NewValue, true);
|
||||||
MaxParticipants.BindValueChanged(count => MaxParticipantsField.Text = count.NewValue?.ToString(), true);
|
MaxParticipants.BindValueChanged(count => MaxParticipantsField.Text = count.NewValue?.ToString(), true);
|
||||||
MaxAttempts.BindValueChanged(count => MaxAttemptsField.Text = count.NewValue?.ToString(), true);
|
MaxAttempts.BindValueChanged(count => MaxAttemptsField.Text = count.NewValue?.ToString(), true);
|
||||||
@ -337,6 +339,24 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
|
|||||||
Playlist.BindCollectionChanged(onPlaylistChanged, true);
|
Playlist.BindCollectionChanged(onPlaylistChanged, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void LoadComplete()
|
||||||
|
{
|
||||||
|
base.LoadComplete();
|
||||||
|
|
||||||
|
room.PropertyChanged += onRoomPropertyChanged;
|
||||||
|
|
||||||
|
updateRoomName();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onRoomPropertyChanged(object? sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.PropertyName == nameof(Room.Name))
|
||||||
|
updateRoomName();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateRoomName()
|
||||||
|
=> NameField.Text = room.Name;
|
||||||
|
|
||||||
private void populateDurations(ValueChangedEvent<APIUser> user)
|
private void populateDurations(ValueChangedEvent<APIUser> user)
|
||||||
{
|
{
|
||||||
// roughly correct (see https://github.com/Humanizr/Humanizer/blob/18167e56c082449cc4fe805b8429e3127a7b7f93/readme.md?plain=1#L427)
|
// roughly correct (see https://github.com/Humanizr/Humanizer/blob/18167e56c082449cc4fe805b8429e3127a7b7f93/readme.md?plain=1#L427)
|
||||||
@ -384,7 +404,7 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
|
|||||||
|
|
||||||
hideError();
|
hideError();
|
||||||
|
|
||||||
RoomName.Value = NameField.Text;
|
room.Name = NameField.Text;
|
||||||
Availability.Value = AvailabilityPicker.Current.Value;
|
Availability.Value = AvailabilityPicker.Current.Value;
|
||||||
|
|
||||||
if (int.TryParse(MaxParticipantsField.Text, out int max))
|
if (int.TryParse(MaxParticipantsField.Text, out int max))
|
||||||
@ -436,6 +456,12 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
|
|||||||
ErrorText.FadeIn(50);
|
ErrorText.FadeIn(50);
|
||||||
loadingLayer.Hide();
|
loadingLayer.Hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void Dispose(bool isDisposing)
|
||||||
|
{
|
||||||
|
base.Dispose(isDisposing);
|
||||||
|
room.PropertyChanged -= onRoomPropertyChanged;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public partial class CreateRoomButton : RoundedButton
|
public partial class CreateRoomButton : RoundedButton
|
||||||
|
@ -42,7 +42,7 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
|
|||||||
public PlaylistsRoomSubScreen(Room room)
|
public PlaylistsRoomSubScreen(Room room)
|
||||||
: base(room, false) // Editing is temporarily not allowed.
|
: base(room, false) // Editing is temporarily not allowed.
|
||||||
{
|
{
|
||||||
Title = room.RoomID == null ? "New playlist" : room.Name.Value;
|
Title = room.RoomID == null ? "New playlist" : room.Name;
|
||||||
Activity.Value = new UserActivity.InLobby(room);
|
Activity.Value = new UserActivity.InLobby(room);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
return new Room
|
return new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "test name" },
|
Name = "test name",
|
||||||
Type = { Value = MatchType.HeadToHead },
|
Type = { Value = MatchType.HeadToHead },
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
|
@ -230,7 +230,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
{
|
{
|
||||||
Settings =
|
Settings =
|
||||||
{
|
{
|
||||||
Name = ServerAPIRoom.Name.Value,
|
Name = ServerAPIRoom.Name,
|
||||||
MatchType = ServerAPIRoom.Type.Value,
|
MatchType = ServerAPIRoom.Type.Value,
|
||||||
Password = password ?? string.Empty,
|
Password = password ?? string.Empty,
|
||||||
QueueMode = ServerAPIRoom.QueueMode.Value,
|
QueueMode = ServerAPIRoom.QueueMode.Value,
|
||||||
|
@ -32,7 +32,7 @@ namespace osu.Game.Tests.Visual.OnlinePlay
|
|||||||
var room = new Room
|
var room = new Room
|
||||||
{
|
{
|
||||||
RoomID = -currentRoomId,
|
RoomID = -currentRoomId,
|
||||||
Name = { Value = $@"Room {currentRoomId}" },
|
Name = $@"Room {currentRoomId}",
|
||||||
Host = { Value = new APIUser { Username = @"Host" } },
|
Host = { Value = new APIUser { Username = @"Host" } },
|
||||||
EndDate = { Value = DateTimeOffset.Now + TimeSpan.FromSeconds(10) },
|
EndDate = { Value = DateTimeOffset.Now + TimeSpan.FromSeconds(10) },
|
||||||
Category = { Value = withSpotlightRooms && i % 2 == 0 ? RoomCategory.Spotlight : RoomCategory.Normal },
|
Category = { Value = withSpotlightRooms && i % 2 == 0 ? RoomCategory.Spotlight : RoomCategory.Normal },
|
||||||
|
@ -249,7 +249,7 @@ namespace osu.Game.Users
|
|||||||
public InLobby(Room room)
|
public InLobby(Room room)
|
||||||
{
|
{
|
||||||
RoomID = room.RoomID ?? -1;
|
RoomID = room.RoomID ?? -1;
|
||||||
RoomName = room.Name.Value;
|
RoomName = room.Name;
|
||||||
}
|
}
|
||||||
|
|
||||||
[SerializationConstructor]
|
[SerializationConstructor]
|
||||||
|
Loading…
Reference in New Issue
Block a user