mirror of
https://github.com/ppy/osu.git
synced 2025-02-22 00:43:25 +08:00
Rename QueueModes -> QueueMode
This commit is contained in:
parent
5c3141d16a
commit
29d0d5badf
@ -26,7 +26,7 @@ namespace osu.Game.Tests.Visual.Multiplayer.QueueingModes
|
|||||||
{
|
{
|
||||||
public abstract class QueueModeTestScene : ScreenTestScene
|
public abstract class QueueModeTestScene : ScreenTestScene
|
||||||
{
|
{
|
||||||
protected abstract QueueModes Mode { get; }
|
protected abstract QueueMode Mode { get; }
|
||||||
|
|
||||||
protected BeatmapInfo InitialBeatmap { get; private set; }
|
protected BeatmapInfo InitialBeatmap { get; private set; }
|
||||||
protected BeatmapInfo OtherBeatmap { get; private set; }
|
protected BeatmapInfo OtherBeatmap { get; private set; }
|
||||||
|
@ -14,7 +14,7 @@ namespace osu.Game.Tests.Visual.Multiplayer.QueueingModes
|
|||||||
{
|
{
|
||||||
public class TestSceneFreeForAllQueueMode : QueueModeTestScene
|
public class TestSceneFreeForAllQueueMode : QueueModeTestScene
|
||||||
{
|
{
|
||||||
protected override QueueModes Mode => QueueModes.FreeForAll;
|
protected override QueueMode Mode => QueueMode.FreeForAll;
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TestFirstItemSelectedByDefault()
|
public void TestFirstItemSelectedByDefault()
|
||||||
@ -72,7 +72,7 @@ namespace osu.Game.Tests.Visual.Multiplayer.QueueingModes
|
|||||||
// Move to the "other" beatmap.
|
// Move to the "other" beatmap.
|
||||||
RunGameplay();
|
RunGameplay();
|
||||||
|
|
||||||
AddStep("change queue mode", () => Client.ChangeSettings(queueMode: QueueModes.HostOnly));
|
AddStep("change queue mode", () => Client.ChangeSettings(queueMode: QueueMode.HostOnly));
|
||||||
AddAssert("playlist has 2 items", () => Client.APIRoom?.Playlist.Count == 2);
|
AddAssert("playlist has 2 items", () => Client.APIRoom?.Playlist.Count == 2);
|
||||||
AddAssert("playlist item is the other beatmap", () => Client.CurrentMatchPlayingItem.Value?.BeatmapID == OtherBeatmap.OnlineID);
|
AddAssert("playlist item is the other beatmap", () => Client.CurrentMatchPlayingItem.Value?.BeatmapID == OtherBeatmap.OnlineID);
|
||||||
AddAssert("playlist item is not expired", () => Client.APIRoom?.Playlist[1].Expired == false);
|
AddAssert("playlist item is not expired", () => Client.APIRoom?.Playlist[1].Expired == false);
|
||||||
|
@ -14,7 +14,7 @@ namespace osu.Game.Tests.Visual.Multiplayer.QueueingModes
|
|||||||
{
|
{
|
||||||
public class TestSceneHostOnlyQueueMode : QueueModeTestScene
|
public class TestSceneHostOnlyQueueMode : QueueModeTestScene
|
||||||
{
|
{
|
||||||
protected override QueueModes Mode => QueueModes.HostOnly;
|
protected override QueueMode Mode => QueueMode.HostOnly;
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TestFirstItemSelectedByDefault()
|
public void TestFirstItemSelectedByDefault()
|
||||||
|
@ -589,7 +589,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
roomManager.AddServerSideRoom(new Room
|
roomManager.AddServerSideRoom(new Room
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
Name = { Value = "Test Room" },
|
||||||
QueueMode = { Value = QueueModes.FreeForAll },
|
QueueMode = { Value = QueueMode.FreeForAll },
|
||||||
Playlist =
|
Playlist =
|
||||||
{
|
{
|
||||||
new PlaylistItem
|
new PlaylistItem
|
||||||
|
@ -222,7 +222,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
/// <param name="password">The new password, if any.</param>
|
/// <param name="password">The new password, if any.</param>
|
||||||
/// <param name="matchType">The type of the match, if any.</param>
|
/// <param name="matchType">The type of the match, if any.</param>
|
||||||
/// <param name="queueMode">The new queue mode, if any.</param>
|
/// <param name="queueMode">The new queue mode, if any.</param>
|
||||||
public Task ChangeSettings(Optional<string> name = default, Optional<string> password = default, Optional<MatchType> matchType = default, Optional<QueueModes> queueMode = default)
|
public Task ChangeSettings(Optional<string> name = default, Optional<string> password = default, Optional<MatchType> matchType = default, Optional<QueueMode> queueMode = default)
|
||||||
{
|
{
|
||||||
if (Room == null)
|
if (Room == null)
|
||||||
throw new InvalidOperationException("Must be joined to a match to change settings.");
|
throw new InvalidOperationException("Must be joined to a match to change settings.");
|
||||||
|
@ -27,7 +27,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
public MatchType MatchType { get; set; } = MatchType.HeadToHead;
|
public MatchType MatchType { get; set; } = MatchType.HeadToHead;
|
||||||
|
|
||||||
[Key(4)]
|
[Key(4)]
|
||||||
public QueueModes QueueMode { get; set; } = QueueModes.HostOnly;
|
public QueueMode QueueMode { get; set; } = QueueMode.HostOnly;
|
||||||
|
|
||||||
public bool Equals(MultiplayerRoomSettings other)
|
public bool Equals(MultiplayerRoomSettings other)
|
||||||
=> Password.Equals(other.Password, StringComparison.Ordinal)
|
=> Password.Equals(other.Password, StringComparison.Ordinal)
|
||||||
|
@ -5,7 +5,7 @@ using System.ComponentModel;
|
|||||||
|
|
||||||
namespace osu.Game.Online.Multiplayer.Queueing
|
namespace osu.Game.Online.Multiplayer.Queueing
|
||||||
{
|
{
|
||||||
public enum QueueModes
|
public enum QueueMode
|
||||||
{
|
{
|
||||||
// used for osu-web deserialization so names shouldn't be changed.
|
// used for osu-web deserialization so names shouldn't be changed.
|
||||||
|
|
@ -76,11 +76,11 @@ namespace osu.Game.Online.Rooms
|
|||||||
|
|
||||||
[Cached]
|
[Cached]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public readonly Bindable<QueueModes> QueueMode = new Bindable<QueueModes>();
|
public readonly Bindable<QueueMode> QueueMode = new Bindable<QueueMode>();
|
||||||
|
|
||||||
[JsonConverter(typeof(SnakeCaseStringEnumConverter))]
|
[JsonConverter(typeof(SnakeCaseStringEnumConverter))]
|
||||||
[JsonProperty("queue_mode")]
|
[JsonProperty("queue_mode")]
|
||||||
private QueueModes queueMode
|
private QueueMode queueMode
|
||||||
{
|
{
|
||||||
get => QueueMode.Value;
|
get => QueueMode.Value;
|
||||||
set => QueueMode.Value = value;
|
set => QueueMode.Value = value;
|
||||||
|
@ -61,7 +61,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
|
|||||||
public OsuTextBox NameField, MaxParticipantsField;
|
public OsuTextBox NameField, MaxParticipantsField;
|
||||||
public RoomAvailabilityPicker AvailabilityPicker;
|
public RoomAvailabilityPicker AvailabilityPicker;
|
||||||
public MatchTypePicker TypePicker;
|
public MatchTypePicker TypePicker;
|
||||||
public OsuEnumDropdown<QueueModes> QueueModeDropdown;
|
public OsuEnumDropdown<QueueMode> QueueModeDropdown;
|
||||||
public OsuTextBox PasswordTextBox;
|
public OsuTextBox PasswordTextBox;
|
||||||
public TriangleButton ApplyButton;
|
public TriangleButton ApplyButton;
|
||||||
|
|
||||||
@ -208,7 +208,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
|
|||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.X,
|
RelativeSizeAxes = Axes.X,
|
||||||
Height = 40,
|
Height = 40,
|
||||||
Child = QueueModeDropdown = new OsuEnumDropdown<QueueModes>
|
Child = QueueModeDropdown = new OsuEnumDropdown<QueueMode>
|
||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.X
|
RelativeSizeAxes = Axes.X
|
||||||
}
|
}
|
||||||
|
@ -388,13 +388,13 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
|
|||||||
|
|
||||||
switch (client.Room.Settings.QueueMode)
|
switch (client.Room.Settings.QueueMode)
|
||||||
{
|
{
|
||||||
case QueueModes.HostOnly:
|
case QueueMode.HostOnly:
|
||||||
AddOrEditPlaylistButton.Text = "Edit beatmap";
|
AddOrEditPlaylistButton.Text = "Edit beatmap";
|
||||||
AddOrEditPlaylistButton.Alpha = client.IsHost ? 1 : 0;
|
AddOrEditPlaylistButton.Alpha = client.IsHost ? 1 : 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QueueModes.FreeForAll:
|
case QueueMode.FreeForAll:
|
||||||
case QueueModes.FairRotate:
|
case QueueMode.FairRotate:
|
||||||
AddOrEditPlaylistButton.Text = "Add beatmap";
|
AddOrEditPlaylistButton.Text = "Add beatmap";
|
||||||
AddOrEditPlaylistButton.Alpha = 1;
|
AddOrEditPlaylistButton.Alpha = 1;
|
||||||
break;
|
break;
|
||||||
|
@ -67,7 +67,7 @@ namespace osu.Game.Screens.OnlinePlay
|
|||||||
protected Bindable<TimeSpan?> Duration { get; private set; }
|
protected Bindable<TimeSpan?> Duration { get; private set; }
|
||||||
|
|
||||||
[Resolved(typeof(Room), nameof(Room.QueueMode))]
|
[Resolved(typeof(Room), nameof(Room.QueueMode))]
|
||||||
protected Bindable<QueueModes> QueueMode { get; private set; }
|
protected Bindable<QueueMode> QueueMode { get; private set; }
|
||||||
|
|
||||||
[Resolved(CanBeNull = true)]
|
[Resolved(CanBeNull = true)]
|
||||||
private IBindable<PlaylistItem> subScreenSelectedItem { get; set; }
|
private IBindable<PlaylistItem> subScreenSelectedItem { get; set; }
|
||||||
|
@ -298,12 +298,12 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
Debug.Assert(APIRoom != null);
|
Debug.Assert(APIRoom != null);
|
||||||
Debug.Assert(currentItem != null);
|
Debug.Assert(currentItem != null);
|
||||||
|
|
||||||
if (Room.Settings.QueueMode == QueueModes.HostOnly && Room.Host?.UserID != LocalUser?.UserID)
|
if (Room.Settings.QueueMode == QueueMode.HostOnly && Room.Host?.UserID != LocalUser?.UserID)
|
||||||
throw new InvalidOperationException("Local user is not the room host.");
|
throw new InvalidOperationException("Local user is not the room host.");
|
||||||
|
|
||||||
switch (Room.Settings.QueueMode)
|
switch (Room.Settings.QueueMode)
|
||||||
{
|
{
|
||||||
case QueueModes.HostOnly:
|
case QueueMode.HostOnly:
|
||||||
// In host-only mode, the current item is re-used.
|
// In host-only mode, the current item is re-used.
|
||||||
item.ID = currentItem.ID;
|
item.ID = currentItem.ID;
|
||||||
|
|
||||||
@ -365,13 +365,13 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task changeQueueMode(QueueModes newMode)
|
private async Task changeQueueMode(QueueMode newMode)
|
||||||
{
|
{
|
||||||
Debug.Assert(Room != null);
|
Debug.Assert(Room != null);
|
||||||
Debug.Assert(APIRoom != null);
|
Debug.Assert(APIRoom != null);
|
||||||
Debug.Assert(currentItem != null);
|
Debug.Assert(currentItem != null);
|
||||||
|
|
||||||
if (newMode == QueueModes.HostOnly)
|
if (newMode == QueueMode.HostOnly)
|
||||||
{
|
{
|
||||||
// Remove all but the current and expired items. The current item may be re-used for host-only mode if it's non-expired.
|
// Remove all but the current and expired items. The current item may be re-used for host-only mode if it's non-expired.
|
||||||
for (int i = 0; i < Room.Playlist.Count; i++)
|
for (int i = 0; i < Room.Playlist.Count; i++)
|
||||||
@ -406,7 +406,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
await ((IMultiplayerClient)this).PlaylistItemChanged(currentItem).ConfigureAwait(false);
|
await ((IMultiplayerClient)this).PlaylistItemChanged(currentItem).ConfigureAwait(false);
|
||||||
|
|
||||||
// In host-only mode, a duplicate playlist item will be used for the next round.
|
// In host-only mode, a duplicate playlist item will be used for the next round.
|
||||||
if (Room.Settings.QueueMode == QueueModes.HostOnly)
|
if (Room.Settings.QueueMode == QueueMode.HostOnly)
|
||||||
await duplicateCurrentItem().ConfigureAwait(false);
|
await duplicateCurrentItem().ConfigureAwait(false);
|
||||||
|
|
||||||
await updateCurrentItem(Room).ConfigureAwait(false);
|
await updateCurrentItem(Room).ConfigureAwait(false);
|
||||||
@ -443,7 +443,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
newItem = room.Playlist.FirstOrDefault(i => !i.Expired) ?? room.Playlist.Last();
|
newItem = room.Playlist.FirstOrDefault(i => !i.Expired) ?? room.Playlist.Last();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QueueModes.FairRotate:
|
case QueueMode.FairRotate:
|
||||||
// Group playlist items by (user_id -> count_expired), and select the first available playlist item from a user that has available beatmaps where count_expired is the lowest.
|
// Group playlist items by (user_id -> count_expired), and select the first available playlist item from a user that has available beatmaps where count_expired is the lowest.
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user