Remove ruleset and mod bindables from PlaylistItem

This commit is contained in:
Dan Balasescu
2022-02-15 16:01:14 +09:00
parent 4c8018a675
commit efeba30b9f
31 changed files with 178 additions and 207 deletions

View File

@ -78,7 +78,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = InitialBeatmap },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
}));

View File

@ -17,6 +17,7 @@ using osu.Game.Beatmaps.Drawables;
using osu.Game.Database;
using osu.Game.Graphics.Containers;
using osu.Game.Models;
using osu.Game.Online.API;
using osu.Game.Online.Rooms;
using osu.Game.Rulesets;
using osu.Game.Rulesets.Osu;
@ -215,25 +216,25 @@ namespace osu.Game.Tests.Visual.Multiplayer
{
ID = 0,
Beatmap = { Value = new TestBeatmap(new OsuRuleset().RulesetInfo).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID,
Expired = true,
RequiredMods =
RequiredMods = new[]
{
new OsuModHardRock(),
new OsuModDoubleTime(),
new OsuModAutoplay()
new APIMod(new OsuModHardRock()),
new APIMod(new OsuModDoubleTime()),
new APIMod(new OsuModAutoplay())
}
},
new PlaylistItem
{
ID = 1,
Beatmap = { Value = new TestBeatmap(new OsuRuleset().RulesetInfo).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RequiredMods =
RulesetID = new OsuRuleset().RulesetInfo.OnlineID,
RequiredMods = new[]
{
new OsuModHardRock(),
new OsuModDoubleTime(),
new OsuModAutoplay()
new APIMod(new OsuModHardRock()),
new APIMod(new OsuModDoubleTime()),
new APIMod(new OsuModAutoplay())
}
}
}
@ -314,12 +315,12 @@ namespace osu.Game.Tests.Visual.Multiplayer
BeatmapSet = new BeatmapSetInfo()
}
},
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RequiredMods =
RulesetID = new OsuRuleset().RulesetInfo.OnlineID,
RequiredMods = new[]
{
new OsuModHardRock(),
new OsuModDoubleTime(),
new OsuModAutoplay()
new APIMod(new OsuModHardRock()),
new APIMod(new OsuModDoubleTime()),
new APIMod(new OsuModAutoplay())
}
});
}
@ -348,12 +349,12 @@ namespace osu.Game.Tests.Visual.Multiplayer
ID = index++,
OwnerID = 2,
Beatmap = { Value = b },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RequiredMods =
RulesetID = new OsuRuleset().RulesetInfo.OnlineID,
RequiredMods = new[]
{
new OsuModHardRock(),
new OsuModDoubleTime(),
new OsuModAutoplay()
new APIMod(new OsuModHardRock()),
new APIMod(new OsuModDoubleTime()),
new APIMod(new OsuModAutoplay())
}
});
}

View File

@ -3,6 +3,7 @@
using NUnit.Framework;
using osu.Framework.Graphics;
using osu.Game.Online.API;
using osu.Game.Online.Rooms;
using osu.Game.Rulesets.Osu;
using osu.Game.Rulesets.Osu.Mods;
@ -35,12 +36,12 @@ namespace osu.Game.Tests.Visual.Multiplayer
{
ID = SelectedRoom.Value.Playlist.Count,
Beatmap = { Value = new TestBeatmap(new OsuRuleset().RulesetInfo).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RequiredMods =
RulesetID = new OsuRuleset().RulesetInfo.OnlineID,
RequiredMods = new[]
{
new OsuModHardRock(),
new OsuModDoubleTime(),
new OsuModAutoplay()
new APIMod(new OsuModHardRock()),
new APIMod(new OsuModDoubleTime()),
new APIMod(new OsuModAutoplay())
}
});
}

View File

@ -19,6 +19,7 @@ using osu.Framework.Utils;
using osu.Game.Beatmaps;
using osu.Game.Database;
using osu.Game.Graphics.UserInterface;
using osu.Game.Online.API;
using osu.Game.Online.API.Requests.Responses;
using osu.Game.Online.Multiplayer;
using osu.Game.Online.Rooms;
@ -99,7 +100,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
});
@ -235,7 +236,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
});
@ -257,7 +258,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
}, API.LocalUser.Value);
@ -287,7 +288,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
}, API.LocalUser.Value);
@ -318,7 +319,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
});
@ -340,7 +341,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
}, API.LocalUser.Value);
@ -373,7 +374,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
});
@ -393,7 +394,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
});
@ -415,7 +416,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
});
@ -454,7 +455,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
});
@ -493,7 +494,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
});
@ -532,7 +533,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
});
@ -566,7 +567,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
});
@ -606,7 +607,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
});
@ -626,8 +627,8 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
AllowedMods = { new OsuModHidden() }
RulesetID = new OsuRuleset().RulesetInfo.OnlineID,
AllowedMods = new[] { new APIMod(new OsuModHidden()) }
}
}
});
@ -666,7 +667,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
});
@ -697,7 +698,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
}, API.LocalUser.Value);
@ -715,7 +716,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
{
ID = 2,
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
});
});
@ -743,7 +744,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
});
@ -779,7 +780,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
});
@ -818,7 +819,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
});
@ -849,7 +850,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
});
@ -882,7 +883,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
});

View File

@ -10,6 +10,7 @@ using osu.Framework.Platform;
using osu.Framework.Screens;
using osu.Framework.Testing;
using osu.Game.Beatmaps;
using osu.Game.Online.API;
using osu.Game.Online.API.Requests.Responses;
using osu.Game.Online.Multiplayer;
using osu.Game.Online.Rooms;
@ -72,7 +73,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
SelectedRoom.Value.Playlist.Add(new PlaylistItem
{
Beatmap = { Value = new TestBeatmap(new OsuRuleset().RulesetInfo).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
});
});
@ -89,8 +90,8 @@ namespace osu.Game.Tests.Visual.Multiplayer
SelectedRoom.Value.Playlist.Add(new PlaylistItem
{
Beatmap = { Value = new TestBeatmap(new TaikoRuleset().RulesetInfo).BeatmapInfo },
Ruleset = { Value = new TaikoRuleset().RulesetInfo },
AllowedMods = { new TaikoModSwap() }
RulesetID = new TaikoRuleset().RulesetInfo.OnlineID,
AllowedMods = new[] { new APIMod(new TaikoModSwap()) }
});
});
@ -112,7 +113,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
SelectedRoom.Value.Playlist.Add(new PlaylistItem
{
Beatmap = { Value = new TestBeatmap(new OsuRuleset().RulesetInfo).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
});
});
@ -127,7 +128,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
SelectedRoom.Value.Playlist.Add(new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First()).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
});
});

View File

@ -31,7 +31,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
Stack.Push(player = new MultiplayerPlayer(Client.APIRoom, new PlaylistItem
{
Beatmap = { Value = Beatmap.Value.BeatmapInfo },
Ruleset = { Value = Beatmap.Value.BeatmapInfo.Ruleset }
RulesetID = Beatmap.Value.BeatmapInfo.Ruleset.OnlineID,
}, Client.Room?.Users.ToArray()));
});

View File

@ -146,12 +146,12 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = new TestBeatmap(Ruleset.Value).BeatmapInfo },
Ruleset = { Value = Ruleset.Value }
RulesetID = Ruleset.Value.OnlineID,
},
new PlaylistItem
{
Beatmap = { Value = new TestBeatmap(Ruleset.Value).BeatmapInfo },
Ruleset = { Value = Ruleset.Value },
RulesetID = Ruleset.Value.OnlineID,
Expired = true
}
}

View File

@ -57,7 +57,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
selectedItem.Value = new PlaylistItem
{
Beatmap = { Value = Beatmap.Value.BeatmapInfo },
Ruleset = { Value = Beatmap.Value.BeatmapInfo.Ruleset },
RulesetID = Beatmap.Value.BeatmapInfo.Ruleset.OnlineID
};
if (button != null)

View File

@ -58,7 +58,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
selectedItem.Value = new PlaylistItem
{
Beatmap = { Value = Beatmap.Value.BeatmapInfo },
Ruleset = { Value = Beatmap.Value.BeatmapInfo.Ruleset },
RulesetID = Beatmap.Value.BeatmapInfo.Ruleset.OnlineID,
};
Child = new FillFlowContainer

View File

@ -13,6 +13,7 @@ using osu.Game.Beatmaps.Drawables;
using osu.Game.Database;
using osu.Game.Graphics.Containers;
using osu.Game.Models;
using osu.Game.Online.API;
using osu.Game.Online.Rooms;
using osu.Game.Rulesets.Osu;
using osu.Game.Rulesets.Osu.Mods;
@ -161,12 +162,12 @@ namespace osu.Game.Tests.Visual.Multiplayer
BeatmapSet = new BeatmapSetInfo()
}
},
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RequiredMods =
RulesetID = new OsuRuleset().RulesetInfo.OnlineID,
RequiredMods = new[]
{
new OsuModHardRock(),
new OsuModDoubleTime(),
new OsuModAutoplay()
new APIMod(new OsuModHardRock()),
new APIMod(new OsuModDoubleTime()),
new APIMod(new OsuModAutoplay())
}
});
}

View File

@ -115,8 +115,17 @@ namespace osu.Game.Tests.Visual.Multiplayer
AddStep("change mod rate", () => ((OsuModDoubleTime)SelectedMods.Value[0]).SpeedChange.Value = 2);
AddStep("create item", () => songSelect.BeatmapDetails.CreateNewItem());
AddAssert("item 1 has rate 1.5", () => Precision.AlmostEquals(1.5, ((OsuModDoubleTime)SelectedRoom.Value.Playlist.First().RequiredMods[0]).SpeedChange.Value));
AddAssert("item 2 has rate 2", () => Precision.AlmostEquals(2, ((OsuModDoubleTime)SelectedRoom.Value.Playlist.Last().RequiredMods[0]).SpeedChange.Value));
AddAssert("item 1 has rate 1.5", () =>
{
var mod = (OsuModDoubleTime)SelectedRoom.Value.Playlist.First().RequiredMods[0].ToMod(new OsuRuleset());
return Precision.AlmostEquals(1.5, mod.SpeedChange.Value);
});
AddAssert("item 2 has rate 2", () =>
{
var mod = (OsuModDoubleTime)SelectedRoom.Value.Playlist.Last().RequiredMods[0].ToMod(new OsuRuleset());
return Precision.AlmostEquals(2, mod.SpeedChange.Value);
});
}
/// <summary>
@ -138,7 +147,11 @@ namespace osu.Game.Tests.Visual.Multiplayer
AddStep("create item", () => songSelect.BeatmapDetails.CreateNewItem());
AddStep("change stored mod rate", () => mod.SpeedChange.Value = 2);
AddAssert("item has rate 1.5", () => Precision.AlmostEquals(1.5, ((OsuModDoubleTime)SelectedRoom.Value.Playlist.First().RequiredMods[0]).SpeedChange.Value));
AddAssert("item has rate 1.5", () =>
{
var m = (OsuModDoubleTime)SelectedRoom.Value.Playlist.First().RequiredMods[0].ToMod(new OsuRuleset());
return Precision.AlmostEquals(1.5, m.SpeedChange.Value);
});
}
private class TestPlaylistsSongSelect : PlaylistsSongSelect

View File

@ -74,7 +74,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
});
@ -95,7 +95,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
});
@ -133,7 +133,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
});
@ -159,7 +159,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
new PlaylistItem
{
Beatmap = { Value = beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo },
Ruleset = { Value = new OsuRuleset().RulesetInfo },
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
}
}
});