mirror of
https://github.com/ppy/osu.git
synced 2025-02-05 14:32:56 +08:00
Make Room.QueueMode
non-bindable
This commit is contained in:
parent
7e3e5208f0
commit
198681e644
@ -74,7 +74,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
AddStep("open room", () => multiplayerComponents.ChildrenOfType<LoungeSubScreen>().Single().Open(new Room
|
AddStep("open room", () => multiplayerComponents.ChildrenOfType<LoungeSubScreen>().Single().Open(new Room
|
||||||
{
|
{
|
||||||
Name = "Test Room",
|
Name = "Test Room",
|
||||||
QueueMode = { Value = Mode },
|
QueueMode = Mode,
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem(InitialBeatmap)
|
new PlaylistItem(InitialBeatmap)
|
||||||
@ -96,7 +96,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestCreatedWithCorrectMode()
|
public void TestCreatedWithCorrectMode()
|
||||||
{
|
{
|
||||||
AddUntilStep("room created with correct mode", () => MultiplayerClient.ClientAPIRoom?.QueueMode.Value == Mode);
|
AddUntilStep("room created with correct mode", () => MultiplayerClient.ClientAPIRoom?.QueueMode == Mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void RunGameplay()
|
protected void RunGameplay()
|
||||||
|
@ -165,7 +165,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
new DrawableMatchRoom(new Room
|
new DrawableMatchRoom(new Room
|
||||||
{
|
{
|
||||||
Name = "A host-only room",
|
Name = "A host-only room",
|
||||||
QueueMode = { Value = QueueMode.HostOnly },
|
QueueMode = QueueMode.HostOnly,
|
||||||
Type = MatchType.HeadToHead,
|
Type = MatchType.HeadToHead,
|
||||||
})
|
})
|
||||||
{
|
{
|
||||||
@ -174,7 +174,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
new DrawableMatchRoom(new Room
|
new DrawableMatchRoom(new Room
|
||||||
{
|
{
|
||||||
Name = "An all-players, team-versus room",
|
Name = "An all-players, team-versus room",
|
||||||
QueueMode = { Value = QueueMode.AllPlayers },
|
QueueMode = QueueMode.AllPlayers,
|
||||||
Type = MatchType.TeamVersus
|
Type = MatchType.TeamVersus
|
||||||
})
|
})
|
||||||
{
|
{
|
||||||
@ -183,7 +183,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
new DrawableMatchRoom(new Room
|
new DrawableMatchRoom(new Room
|
||||||
{
|
{
|
||||||
Name = "A round-robin room",
|
Name = "A round-robin room",
|
||||||
QueueMode = { Value = QueueMode.AllPlayersRoundRobin },
|
QueueMode = QueueMode.AllPlayersRoundRobin,
|
||||||
Type = MatchType.HeadToHead
|
Type = MatchType.HeadToHead
|
||||||
})
|
})
|
||||||
{
|
{
|
||||||
|
@ -46,7 +46,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
QueueMode = QueueMode.AllPlayers
|
QueueMode = QueueMode.AllPlayers
|
||||||
}).WaitSafely());
|
}).WaitSafely());
|
||||||
|
|
||||||
AddUntilStep("api room updated", () => MultiplayerClient.ClientAPIRoom?.QueueMode.Value == QueueMode.AllPlayers);
|
AddUntilStep("api room updated", () => MultiplayerClient.ClientAPIRoom?.QueueMode == QueueMode.AllPlayers);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -792,7 +792,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
roomManager.AddServerSideRoom(new Room
|
roomManager.AddServerSideRoom(new Room
|
||||||
{
|
{
|
||||||
Name = "Test Room",
|
Name = "Test Room",
|
||||||
QueueMode = { Value = QueueMode.AllPlayers },
|
QueueMode = QueueMode.AllPlayers,
|
||||||
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)
|
||||||
@ -837,7 +837,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = "Test Room",
|
Name = "Test Room",
|
||||||
QueueMode = { Value = QueueMode.AllPlayers },
|
QueueMode = QueueMode.AllPlayers,
|
||||||
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)
|
||||||
@ -873,7 +873,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = "Test Room",
|
Name = "Test Room",
|
||||||
QueueMode = { Value = QueueMode.AllPlayers },
|
QueueMode = QueueMode.AllPlayers,
|
||||||
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)
|
||||||
@ -912,7 +912,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = "Test Room",
|
Name = "Test Room",
|
||||||
QueueMode = { Value = QueueMode.AllPlayers },
|
QueueMode = QueueMode.AllPlayers,
|
||||||
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)
|
||||||
@ -943,7 +943,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = "Test Room",
|
Name = "Test Room",
|
||||||
QueueMode = { Value = QueueMode.AllPlayers },
|
QueueMode = QueueMode.AllPlayers,
|
||||||
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)
|
||||||
@ -1023,7 +1023,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
createRoom(() => new Room
|
createRoom(() => new Room
|
||||||
{
|
{
|
||||||
Name = "Test Room",
|
Name = "Test Room",
|
||||||
QueueMode = { Value = QueueMode.AllPlayers },
|
QueueMode = QueueMode.AllPlayers,
|
||||||
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)
|
||||||
|
@ -69,7 +69,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
public void TestDeleteButtonAlwaysVisibleForHost()
|
public void TestDeleteButtonAlwaysVisibleForHost()
|
||||||
{
|
{
|
||||||
AddStep("set all players queue mode", () => MultiplayerClient.ChangeSettings(new MultiplayerRoomSettings { QueueMode = QueueMode.AllPlayers }).WaitSafely());
|
AddStep("set all players queue mode", () => MultiplayerClient.ChangeSettings(new MultiplayerRoomSettings { QueueMode = QueueMode.AllPlayers }).WaitSafely());
|
||||||
AddUntilStep("wait for queue mode change", () => MultiplayerClient.ClientAPIRoom?.QueueMode.Value == QueueMode.AllPlayers);
|
AddUntilStep("wait for queue mode change", () => MultiplayerClient.ClientAPIRoom?.QueueMode == QueueMode.AllPlayers);
|
||||||
|
|
||||||
addPlaylistItem(() => API.LocalUser.Value.OnlineID);
|
addPlaylistItem(() => API.LocalUser.Value.OnlineID);
|
||||||
assertDeleteButtonVisibility(1, true);
|
assertDeleteButtonVisibility(1, true);
|
||||||
@ -81,7 +81,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
public void TestDeleteButtonOnlyVisibleForItemOwnerIfNotHost()
|
public void TestDeleteButtonOnlyVisibleForItemOwnerIfNotHost()
|
||||||
{
|
{
|
||||||
AddStep("set all players queue mode", () => MultiplayerClient.ChangeSettings(new MultiplayerRoomSettings { QueueMode = QueueMode.AllPlayers }).WaitSafely());
|
AddStep("set all players queue mode", () => MultiplayerClient.ChangeSettings(new MultiplayerRoomSettings { QueueMode = QueueMode.AllPlayers }).WaitSafely());
|
||||||
AddUntilStep("wait for queue mode change", () => MultiplayerClient.ClientAPIRoom?.QueueMode.Value == QueueMode.AllPlayers);
|
AddUntilStep("wait for queue mode change", () => MultiplayerClient.ClientAPIRoom?.QueueMode == QueueMode.AllPlayers);
|
||||||
|
|
||||||
AddStep("join other user", () => MultiplayerClient.AddUser(new APIUser { Id = 1234 }));
|
AddStep("join other user", () => MultiplayerClient.AddUser(new APIUser { Id = 1234 }));
|
||||||
AddStep("set other user as host", () => MultiplayerClient.TransferHost(1234));
|
AddStep("set other user as host", () => MultiplayerClient.TransferHost(1234));
|
||||||
@ -100,7 +100,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
public void TestSingleItemDoesNotHaveDeleteButton()
|
public void TestSingleItemDoesNotHaveDeleteButton()
|
||||||
{
|
{
|
||||||
AddStep("set all players queue mode", () => MultiplayerClient.ChangeSettings(new MultiplayerRoomSettings { QueueMode = QueueMode.AllPlayers }).WaitSafely());
|
AddStep("set all players queue mode", () => MultiplayerClient.ChangeSettings(new MultiplayerRoomSettings { QueueMode = QueueMode.AllPlayers }).WaitSafely());
|
||||||
AddUntilStep("wait for queue mode change", () => MultiplayerClient.ClientAPIRoom?.QueueMode.Value == QueueMode.AllPlayers);
|
AddUntilStep("wait for queue mode change", () => MultiplayerClient.ClientAPIRoom?.QueueMode == QueueMode.AllPlayers);
|
||||||
|
|
||||||
assertDeleteButtonVisibility(0, false);
|
assertDeleteButtonVisibility(0, false);
|
||||||
}
|
}
|
||||||
@ -109,7 +109,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
public void TestCurrentItemHasDeleteButtonIfNotSingle()
|
public void TestCurrentItemHasDeleteButtonIfNotSingle()
|
||||||
{
|
{
|
||||||
AddStep("set all players queue mode", () => MultiplayerClient.ChangeSettings(new MultiplayerRoomSettings { QueueMode = QueueMode.AllPlayers }).WaitSafely());
|
AddStep("set all players queue mode", () => MultiplayerClient.ChangeSettings(new MultiplayerRoomSettings { QueueMode = QueueMode.AllPlayers }).WaitSafely());
|
||||||
AddUntilStep("wait for queue mode change", () => MultiplayerClient.ClientAPIRoom?.QueueMode.Value == QueueMode.AllPlayers);
|
AddUntilStep("wait for queue mode change", () => MultiplayerClient.ClientAPIRoom?.QueueMode == QueueMode.AllPlayers);
|
||||||
|
|
||||||
addPlaylistItem(() => API.LocalUser.Value.OnlineID);
|
addPlaylistItem(() => API.LocalUser.Value.OnlineID);
|
||||||
|
|
||||||
|
@ -845,7 +845,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
APIRoom.Password.Value = Room.Settings.Password;
|
APIRoom.Password.Value = Room.Settings.Password;
|
||||||
APIRoom.Status = string.IsNullOrEmpty(Room.Settings.Password) ? new RoomStatusOpen() : new RoomStatusOpenPrivate();
|
APIRoom.Status = string.IsNullOrEmpty(Room.Settings.Password) ? new RoomStatusOpen() : new RoomStatusOpenPrivate();
|
||||||
APIRoom.Type = Room.Settings.MatchType;
|
APIRoom.Type = Room.Settings.MatchType;
|
||||||
APIRoom.QueueMode.Value = Room.Settings.QueueMode;
|
APIRoom.QueueMode = Room.Settings.QueueMode;
|
||||||
APIRoom.AutoStartDuration.Value = Room.Settings.AutoStartDuration;
|
APIRoom.AutoStartDuration.Value = Room.Settings.AutoStartDuration;
|
||||||
APIRoom.CurrentPlaylistItem = APIRoom.Playlist.Single(item => item.ID == settings.PlaylistItemId);
|
APIRoom.CurrentPlaylistItem = APIRoom.Playlist.Single(item => item.ID == settings.PlaylistItemId);
|
||||||
APIRoom.AutoSkip.Value = Room.Settings.AutoSkip;
|
APIRoom.AutoSkip.Value = Room.Settings.AutoSkip;
|
||||||
|
@ -66,6 +66,15 @@ namespace osu.Game.Online.Rooms
|
|||||||
set => SetField(ref type, value);
|
set => SetField(ref type, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The playlist queueing mode. Only valid for multiplayer rooms.
|
||||||
|
/// </summary>
|
||||||
|
public QueueMode QueueMode
|
||||||
|
{
|
||||||
|
get => queueMode;
|
||||||
|
set => SetField(ref queueMode, value);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents the current item selected within the room.
|
/// Represents the current item selected within the room.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -96,6 +105,7 @@ namespace osu.Game.Online.Rooms
|
|||||||
set => SetField(ref availability, value);
|
set => SetField(ref availability, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[JsonProperty("id")]
|
[JsonProperty("id")]
|
||||||
private long? roomId;
|
private long? roomId;
|
||||||
|
|
||||||
@ -113,6 +123,10 @@ namespace osu.Game.Online.Rooms
|
|||||||
[JsonProperty("type")]
|
[JsonProperty("type")]
|
||||||
private MatchType type;
|
private MatchType type;
|
||||||
|
|
||||||
|
[JsonConverter(typeof(SnakeCaseStringEnumConverter))]
|
||||||
|
[JsonProperty("queue_mode")]
|
||||||
|
private QueueMode queueMode;
|
||||||
|
|
||||||
[JsonProperty("current_playlist_item")]
|
[JsonProperty("current_playlist_item")]
|
||||||
private PlaylistItem? currentPlaylistItem;
|
private PlaylistItem? currentPlaylistItem;
|
||||||
|
|
||||||
@ -141,17 +155,6 @@ namespace osu.Game.Online.Rooms
|
|||||||
[Cached]
|
[Cached]
|
||||||
public readonly Bindable<int?> MaxAttempts = new Bindable<int?>();
|
public readonly Bindable<int?> MaxAttempts = new Bindable<int?>();
|
||||||
|
|
||||||
[Cached]
|
|
||||||
public readonly Bindable<QueueMode> QueueMode = new Bindable<QueueMode>();
|
|
||||||
|
|
||||||
[JsonConverter(typeof(SnakeCaseStringEnumConverter))]
|
|
||||||
[JsonProperty("queue_mode")]
|
|
||||||
private QueueMode queueMode
|
|
||||||
{
|
|
||||||
get => QueueMode.Value;
|
|
||||||
set => QueueMode.Value = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
[Cached]
|
[Cached]
|
||||||
public readonly Bindable<TimeSpan> AutoStartDuration = new Bindable<TimeSpan>();
|
public readonly Bindable<TimeSpan> AutoStartDuration = new Bindable<TimeSpan>();
|
||||||
|
|
||||||
@ -257,7 +260,7 @@ namespace osu.Game.Online.Rooms
|
|||||||
ParticipantCount.Value = other.ParticipantCount.Value;
|
ParticipantCount.Value = other.ParticipantCount.Value;
|
||||||
EndDate.Value = other.EndDate.Value;
|
EndDate.Value = other.EndDate.Value;
|
||||||
UserScore.Value = other.UserScore.Value;
|
UserScore.Value = other.UserScore.Value;
|
||||||
QueueMode.Value = other.QueueMode.Value;
|
QueueMode = other.QueueMode;
|
||||||
AutoStartDuration.Value = other.AutoStartDuration.Value;
|
AutoStartDuration.Value = other.AutoStartDuration.Value;
|
||||||
DifficultyRange.Value = other.DifficultyRange.Value;
|
DifficultyRange.Value = other.DifficultyRange.Value;
|
||||||
PlaylistItemStats.Value = other.PlaylistItemStats.Value;
|
PlaylistItemStats.Value = other.PlaylistItemStats.Value;
|
||||||
|
@ -341,7 +341,7 @@ namespace osu.Game.Screens.OnlinePlay.Lounge.Components
|
|||||||
pills.AddRange(new OnlinePlayComposite[]
|
pills.AddRange(new OnlinePlayComposite[]
|
||||||
{
|
{
|
||||||
new MatchTypePill(Room),
|
new MatchTypePill(Room),
|
||||||
new QueueModePill(),
|
new QueueModePill(Room),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,24 +1,42 @@
|
|||||||
// 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.
|
||||||
|
|
||||||
using osu.Framework.Bindables;
|
using System.ComponentModel;
|
||||||
using osu.Framework.Extensions;
|
using osu.Framework.Extensions;
|
||||||
using osu.Game.Online.Multiplayer;
|
using osu.Game.Online.Rooms;
|
||||||
|
|
||||||
namespace osu.Game.Screens.OnlinePlay.Lounge.Components
|
namespace osu.Game.Screens.OnlinePlay.Lounge.Components
|
||||||
{
|
{
|
||||||
public partial class QueueModePill : OnlinePlayPill
|
public partial class QueueModePill : OnlinePlayPill
|
||||||
{
|
{
|
||||||
|
private readonly Room room;
|
||||||
|
|
||||||
|
public QueueModePill(Room room)
|
||||||
|
{
|
||||||
|
this.room = room;
|
||||||
|
}
|
||||||
|
|
||||||
protected override void LoadComplete()
|
protected override void LoadComplete()
|
||||||
{
|
{
|
||||||
base.LoadComplete();
|
base.LoadComplete();
|
||||||
|
|
||||||
QueueMode.BindValueChanged(onQueueModeChanged, true);
|
room.PropertyChanged += onRoomPropertyChanged;
|
||||||
|
updateRoomQueueMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onQueueModeChanged(ValueChangedEvent<QueueMode> mode)
|
private void onRoomPropertyChanged(object? sender, PropertyChangedEventArgs e)
|
||||||
{
|
{
|
||||||
TextFlow.Text = mode.NewValue.GetLocalisableDescription();
|
if (e.PropertyName == nameof(Room.QueueMode))
|
||||||
|
updateRoomQueueMode();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateRoomQueueMode()
|
||||||
|
=> TextFlow.Text = room.QueueMode.GetLocalisableDescription();
|
||||||
|
|
||||||
|
protected override void Dispose(bool isDisposing)
|
||||||
|
{
|
||||||
|
base.Dispose(isDisposing);
|
||||||
|
room.PropertyChanged -= onRoomPropertyChanged;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -352,7 +352,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);
|
||||||
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);
|
||||||
QueueMode.BindValueChanged(mode => QueueModeDropdown.Current.Value = mode.NewValue, true);
|
|
||||||
AutoStartDuration.BindValueChanged(duration => startModeDropdown.Current.Value = (StartMode)(int)duration.NewValue.TotalSeconds, true);
|
AutoStartDuration.BindValueChanged(duration => startModeDropdown.Current.Value = (StartMode)(int)duration.NewValue.TotalSeconds, true);
|
||||||
AutoSkip.BindValueChanged(autoSkip => AutoSkipCheckbox.Current.Value = autoSkip.NewValue, true);
|
AutoSkip.BindValueChanged(autoSkip => AutoSkipCheckbox.Current.Value = autoSkip.NewValue, true);
|
||||||
|
|
||||||
@ -377,6 +376,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
|
|||||||
|
|
||||||
updateRoomName();
|
updateRoomName();
|
||||||
updateRoomType();
|
updateRoomType();
|
||||||
|
updateRoomQueueMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onRoomPropertyChanged(object? sender, PropertyChangedEventArgs e)
|
private void onRoomPropertyChanged(object? sender, PropertyChangedEventArgs e)
|
||||||
@ -390,6 +390,10 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
|
|||||||
case nameof(Room.Type):
|
case nameof(Room.Type):
|
||||||
updateRoomName();
|
updateRoomName();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case nameof(Room.QueueMode):
|
||||||
|
updateRoomQueueMode();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -399,6 +403,9 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
|
|||||||
private void updateRoomType()
|
private void updateRoomType()
|
||||||
=> TypePicker.Current.Value = room.Type;
|
=> TypePicker.Current.Value = room.Type;
|
||||||
|
|
||||||
|
private void updateRoomQueueMode()
|
||||||
|
=> QueueModeDropdown.Current.Value = room.QueueMode;
|
||||||
|
|
||||||
protected override void Update()
|
protected override void Update()
|
||||||
{
|
{
|
||||||
base.Update();
|
base.Update();
|
||||||
@ -443,7 +450,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
|
|||||||
room.Name = NameField.Text;
|
room.Name = NameField.Text;
|
||||||
room.Type = TypePicker.Current.Value;
|
room.Type = TypePicker.Current.Value;
|
||||||
room.Password.Value = PasswordTextBox.Current.Value;
|
room.Password.Value = PasswordTextBox.Current.Value;
|
||||||
room.QueueMode.Value = QueueModeDropdown.Current.Value;
|
room.QueueMode = QueueModeDropdown.Current.Value;
|
||||||
room.AutoStartDuration.Value = autoStartDuration;
|
room.AutoStartDuration.Value = autoStartDuration;
|
||||||
room.AutoSkip.Value = AutoSkipCheckbox.Current.Value;
|
room.AutoSkip.Value = AutoSkipCheckbox.Current.Value;
|
||||||
|
|
||||||
|
@ -358,7 +358,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
|
|||||||
Activity.Value = new UserActivity.InLobby(Room);
|
Activity.Value = new UserActivity.InLobby(Room);
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool localUserCanAddItem => client.IsHost || Room.QueueMode.Value != QueueMode.HostOnly;
|
private bool localUserCanAddItem => client.IsHost || Room.QueueMode != QueueMode.HostOnly;
|
||||||
|
|
||||||
private void updateCurrentItem()
|
private void updateCurrentItem()
|
||||||
{
|
{
|
||||||
|
@ -6,7 +6,6 @@ using osu.Framework.Allocation;
|
|||||||
using osu.Framework.Bindables;
|
using osu.Framework.Bindables;
|
||||||
using osu.Framework.Graphics.Containers;
|
using osu.Framework.Graphics.Containers;
|
||||||
using osu.Game.Online.API.Requests.Responses;
|
using osu.Game.Online.API.Requests.Responses;
|
||||||
using osu.Game.Online.Multiplayer;
|
|
||||||
using osu.Game.Online.Rooms;
|
using osu.Game.Online.Rooms;
|
||||||
|
|
||||||
namespace osu.Game.Screens.OnlinePlay
|
namespace osu.Game.Screens.OnlinePlay
|
||||||
@ -52,9 +51,6 @@ namespace osu.Game.Screens.OnlinePlay
|
|||||||
[Resolved(typeof(Room))]
|
[Resolved(typeof(Room))]
|
||||||
protected Bindable<TimeSpan?> Duration { get; private set; } = null!;
|
protected Bindable<TimeSpan?> Duration { get; private set; } = null!;
|
||||||
|
|
||||||
[Resolved(typeof(Room))]
|
|
||||||
protected Bindable<QueueMode> QueueMode { get; private set; } = null!;
|
|
||||||
|
|
||||||
[Resolved(typeof(Room))]
|
[Resolved(typeof(Room))]
|
||||||
protected Bindable<TimeSpan> AutoStartDuration { get; private set; } = null!;
|
protected Bindable<TimeSpan> AutoStartDuration { get; private set; } = null!;
|
||||||
|
|
||||||
|
@ -233,7 +233,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
Name = ServerAPIRoom.Name,
|
Name = ServerAPIRoom.Name,
|
||||||
MatchType = ServerAPIRoom.Type,
|
MatchType = ServerAPIRoom.Type,
|
||||||
Password = password ?? string.Empty,
|
Password = password ?? string.Empty,
|
||||||
QueueMode = ServerAPIRoom.QueueMode.Value,
|
QueueMode = ServerAPIRoom.QueueMode,
|
||||||
AutoStartDuration = ServerAPIRoom.AutoStartDuration.Value
|
AutoStartDuration = ServerAPIRoom.AutoStartDuration.Value
|
||||||
},
|
},
|
||||||
Playlist = ServerAPIRoom.Playlist.Select(CreateMultiplayerPlaylistItem).ToList(),
|
Playlist = ServerAPIRoom.Playlist.Select(CreateMultiplayerPlaylistItem).ToList(),
|
||||||
|
Loading…
Reference in New Issue
Block a user