Update all simple cases of switching to `IWorkingBeatmap`

This commit is contained in:
Dean Herbert 2021-11-15 18:46:11 +09:00
parent 0146987eba
commit 7c2e79f911
24 changed files with 52 additions and 49 deletions

View File

@ -30,7 +30,7 @@ public void Setup() => Schedule(() =>
var controlPointInfo = new ControlPointInfo();
controlPointInfo.Add(0, new TimingControlPoint());
WorkingBeatmap beatmap = CreateWorkingBeatmap(new Beatmap
IWorkingBeatmap beatmap = CreateWorkingBeatmap(new Beatmap
{
HitObjects = new List<HitObject> { new Fruit() },
BeatmapInfo = new BeatmapInfo

View File

@ -27,7 +27,7 @@ private void load()
var controlPointInfo = new ControlPointInfo();
controlPointInfo.Add(0, new TimingControlPoint());
WorkingBeatmap beatmap = CreateWorkingBeatmap(new Beatmap
IWorkingBeatmap beatmap = CreateWorkingBeatmap(new Beatmap
{
HitObjects = new List<HitObject> { new Hit { Type = HitType.Centre } },
BeatmapInfo = new BeatmapInfo

View File

@ -19,7 +19,7 @@ public class TestSceneBeatmapSkinResources : OsuTestScene
[Resolved]
private BeatmapManager beatmaps { get; set; }
private WorkingBeatmap beatmap;
private IWorkingBeatmap beatmap;
[BackgroundDependencyLoader]
private void load()

View File

@ -81,11 +81,11 @@ public void TestPlacementOnlyWorksWithTiming()
public class EditorBeatmapContainer : Container
{
private readonly WorkingBeatmap working;
private readonly IWorkingBeatmap working;
public EditorBeatmap EditorBeatmap { get; private set; }
public EditorBeatmapContainer(WorkingBeatmap working)
public EditorBeatmapContainer(IWorkingBeatmap working)
{
this.working = working;

View File

@ -20,7 +20,7 @@ namespace osu.Game.Tests.Visual.Editing
[TestFixture]
public class TestSceneWaveform : OsuTestScene
{
private WorkingBeatmap waveformBeatmap;
private IWorkingBeatmap waveformBeatmap;
[BackgroundDependencyLoader]
private void load(AudioManager audio)

View File

@ -95,8 +95,9 @@ private void resetPlayer(bool interactive, Action beforeLoadAction = null)
private void prepareBeatmap()
{
Beatmap.Value = CreateWorkingBeatmap(new OsuRuleset().RulesetInfo);
Beatmap.Value.BeatmapInfo.EpilepsyWarning = epilepsyWarning;
var workingBeatmap = CreateWorkingBeatmap(new OsuRuleset().RulesetInfo);
workingBeatmap.BeatmapInfo.EpilepsyWarning = epilepsyWarning;
Beatmap.Value = workingBeatmap;
foreach (var mod in SelectedMods.Value.OfType<IApplicableToTrack>())
mod.ApplyToTrack(Beatmap.Value.Track);

View File

@ -12,7 +12,7 @@ namespace osu.Game.Tests.Visual.Gameplay
{
public class TestScenePlayerReferenceLeaking : TestSceneAllRulesetPlayers
{
private readonly WeakList<WorkingBeatmap> workingWeakReferences = new WeakList<WorkingBeatmap>();
private readonly WeakList<IWorkingBeatmap> workingWeakReferences = new WeakList<IWorkingBeatmap>();
private readonly WeakList<Player> playerWeakReferences = new WeakList<Player>();

View File

@ -86,7 +86,7 @@ private void restart()
track.Start();
}
private void loadStoryboard(WorkingBeatmap working)
private void loadStoryboard(IWorkingBeatmap working)
{
if (storyboard != null)
storyboardContainer.Remove(storyboard);

View File

@ -31,7 +31,7 @@ public void TestMusicPlayAction()
public void TestMusicNavigationActions()
{
int importId = 0;
Queue<(WorkingBeatmap working, TrackChangeDirection changeDirection)> trackChangeQueue = null;
Queue<(IWorkingBeatmap working, TrackChangeDirection changeDirection)> trackChangeQueue = null;
// ensure we have at least two beatmaps available to identify the direction the music controller navigated to.
AddRepeatStep("import beatmap", () => Game.BeatmapManager.Import(new BeatmapSetInfo
@ -58,7 +58,7 @@ public void TestMusicNavigationActions()
AddStep("bind to track change", () =>
{
trackChangeQueue = new Queue<(WorkingBeatmap, TrackChangeDirection)>();
trackChangeQueue = new Queue<(IWorkingBeatmap, TrackChangeDirection)>();
Game.MusicController.TrackChanged += (working, changeDirection) => trackChangeQueue.Enqueue((working, changeDirection));
});

View File

@ -7,6 +7,7 @@
using NUnit.Framework;
using osu.Framework.Screens;
using osu.Game.Beatmaps;
using osu.Game.Extensions;
using osu.Game.Rulesets;
using osu.Game.Rulesets.Mania;
using osu.Game.Rulesets.Osu;
@ -139,7 +140,7 @@ private void presentAndConfirm(Func<BeatmapSetInfo> getImport)
AddStep("present beatmap", () => Game.PresentBeatmap(getImport()));
AddUntilStep("wait for song select", () => Game.ScreenStack.CurrentScreen is Screens.Select.SongSelect);
AddUntilStep("correct beatmap displayed", () => Game.Beatmap.Value.BeatmapSetInfo.ID == getImport().ID);
AddUntilStep("correct beatmap displayed", () => Game.Beatmap.Value.BeatmapSetInfo.MatchesOnlineID(getImport()));
AddAssert("correct ruleset selected", () => Game.Ruleset.Value.ID == getImport().Beatmaps.First().Ruleset.ID);
}

View File

@ -96,7 +96,7 @@ public void TestRetryFromResults()
Player player = null;
ResultsScreen results = null;
WorkingBeatmap beatmap() => Game.Beatmap.Value;
IWorkingBeatmap beatmap() => Game.Beatmap.Value;
PushAndConfirm(() => new TestPlaySongSelect());
@ -128,7 +128,7 @@ public void TestSongContinuesAfterExitPlayer(bool withUserPause)
{
Player player = null;
WorkingBeatmap beatmap() => Game.Beatmap.Value;
IWorkingBeatmap beatmap() => Game.Beatmap.Value;
PushAndConfirm(() => new TestPlaySongSelect());

View File

@ -88,7 +88,7 @@ public void TestRandomFromDatabase()
});
}
private void showMetadataForBeatmap(Func<WorkingBeatmap> getBeatmap)
private void showMetadataForBeatmap(Func<IWorkingBeatmap> getBeatmap)
{
AddStep("setup display", () =>
{

View File

@ -17,6 +17,7 @@
using osu.Framework.Testing;
using osu.Game.Beatmaps;
using osu.Game.Configuration;
using osu.Game.Extensions;
using osu.Game.Graphics.UserInterface;
using osu.Game.Online.API.Requests.Responses;
using osu.Game.Overlays;
@ -360,7 +361,7 @@ public void TestPresentNewRulesetNewBeatmap()
AddUntilStep("has selection", () => songSelect.Carousel.SelectedBeatmapInfo.Equals(target));
// this is an important check, to make sure updateComponentFromBeatmap() was actually run
AddUntilStep("selection shown on wedge", () => songSelect.CurrentBeatmapDetailsBeatmap.BeatmapInfo.Equals(target));
AddUntilStep("selection shown on wedge", () => songSelect.CurrentBeatmapDetailsBeatmap.BeatmapInfo.MatchesOnlineID(target));
}
[Test]
@ -392,7 +393,7 @@ public void TestPresentNewBeatmapNewRuleset()
AddUntilStep("has correct ruleset", () => Ruleset.Value.ID == 0);
// this is an important check, to make sure updateComponentFromBeatmap() was actually run
AddUntilStep("selection shown on wedge", () => songSelect.CurrentBeatmapDetailsBeatmap.BeatmapInfo.Equals(target));
AddUntilStep("selection shown on wedge", () => songSelect.CurrentBeatmapDetailsBeatmap.BeatmapInfo.MatchesOnlineID(target));
}
[Test]
@ -672,7 +673,7 @@ public void TestChangingRulesetOnMultiRulesetBeatmap()
AddUntilStep("wait for selection", () => !Beatmap.IsDefault);
AddStep("record set ID", () => previousSetID = Beatmap.Value.BeatmapSetInfo.ID);
AddStep("record set ID", () => previousSetID = ((IBeatmapSetInfo)Beatmap.Value.BeatmapSetInfo).OnlineID);
AddAssert("selection changed once", () => changeCount == 1);
AddAssert("Check ruleset is osu!", () => Ruleset.Value.ID == 0);
@ -683,8 +684,8 @@ public void TestChangingRulesetOnMultiRulesetBeatmap()
AddUntilStep("selection changed", () => changeCount > 1);
AddAssert("Selected beatmap still same set", () => Beatmap.Value.BeatmapSetInfo.ID == previousSetID);
AddAssert("Selected beatmap is mania", () => Beatmap.Value.BeatmapInfo.Ruleset.ID == 3);
AddAssert("Selected beatmap still same set", () => Beatmap.Value.BeatmapSetInfo.OnlineID == previousSetID);
AddAssert("Selected beatmap is mania", () => Beatmap.Value.BeatmapInfo.Ruleset.OnlineID == 3);
AddAssert("selection changed only fired twice", () => changeCount == 2);
@ -727,7 +728,7 @@ public void TestDifficultyIconSelectingForDifferentRuleset()
int previousSetID = 0;
AddStep("record set ID", () => previousSetID = Beatmap.Value.BeatmapSetInfo.ID);
AddStep("record set ID", () => previousSetID = ((IBeatmapSetInfo)Beatmap.Value.BeatmapSetInfo).OnlineID);
AddStep("Click on a difficulty", () =>
{
@ -739,7 +740,7 @@ public void TestDifficultyIconSelectingForDifferentRuleset()
AddUntilStep("Check ruleset changed to mania", () => Ruleset.Value.ID == 3);
AddAssert("Selected beatmap still same set", () => songSelect.Carousel.SelectedBeatmapInfo.BeatmapSet.ID == previousSetID);
AddAssert("Selected beatmap is mania", () => Beatmap.Value.BeatmapInfo.Ruleset.ID == 3);
AddAssert("Selected beatmap is mania", () => Beatmap.Value.BeatmapInfo.Ruleset.OnlineID == 3);
}
[Test]
@ -784,7 +785,7 @@ public void TestGroupedDifficultyIconSelecting()
AddUntilStep("Check ruleset changed to mania", () => Ruleset.Value.ID == 3);
AddAssert("Check first item in group selected", () => Beatmap.Value.BeatmapInfo.Equals(groupIcon.Items.First().BeatmapInfo));
AddAssert("Check first item in group selected", () => Beatmap.Value.BeatmapInfo.MatchesOnlineID(groupIcon.Items.First().BeatmapInfo));
}
[Test]
@ -815,7 +816,7 @@ public void TestChangeRulesetWhilePresentingScore()
AddUntilStep("wait for results screen presented", () => !songSelect.IsCurrentScreen());
AddAssert("check beatmap is correct for score", () => Beatmap.Value.BeatmapInfo.Equals(getPresentBeatmap()));
AddAssert("check beatmap is correct for score", () => Beatmap.Value.BeatmapInfo.MatchesOnlineID(getPresentBeatmap()));
AddAssert("check ruleset is correct for score", () => Ruleset.Value.ID == 0);
}
@ -847,7 +848,7 @@ public void TestChangeBeatmapWhilePresentingScore()
AddUntilStep("wait for results screen presented", () => !songSelect.IsCurrentScreen());
AddAssert("check beatmap is correct for score", () => Beatmap.Value.BeatmapInfo.Equals(getPresentBeatmap()));
AddAssert("check beatmap is correct for score", () => Beatmap.Value.BeatmapInfo.MatchesOnlineID(getPresentBeatmap()));
AddAssert("check ruleset is correct for score", () => Ruleset.Value.ID == 0);
}
@ -960,7 +961,7 @@ private class TestSongSelect : PlaySongSelect
public new FilterControl FilterControl => base.FilterControl;
public WorkingBeatmap CurrentBeatmap => Beatmap.Value;
public WorkingBeatmap CurrentBeatmapDetailsBeatmap => BeatmapDetails.Beatmap;
public IWorkingBeatmap CurrentBeatmapDetailsBeatmap => BeatmapDetails.Beatmap;
public new BeatmapCarousel Carousel => base.Carousel;
public new void PresentScore(ScoreInfo score) => base.PresentScore(score);

View File

@ -151,7 +151,7 @@ protected override Task<StarDifficulty> ComputeValueAsync(DifficultyCacheLookup
}, token, TaskCreationOptions.HideScheduler | TaskCreationOptions.RunContinuationsAsynchronously, updateScheduler);
}
public Task<List<TimedDifficultyAttributes>> GetTimedDifficultyAttributesAsync(WorkingBeatmap beatmap, Ruleset ruleset, Mod[] mods, CancellationToken token = default)
public Task<List<TimedDifficultyAttributes>> GetTimedDifficultyAttributesAsync(IWorkingBeatmap beatmap, Ruleset ruleset, Mod[] mods, CancellationToken token = default)
{
return Task.Factory.StartNew(() => ruleset.CreateDifficultyCalculator(beatmap).CalculateTimed(mods),
token,

View File

@ -179,7 +179,7 @@ public virtual void Save(BeatmapInfo info, IBeatmap beatmapContent, ISkin beatma
/// <summary>
/// A default representation of a WorkingBeatmap to use when no beatmap is available.
/// </summary>
public WorkingBeatmap DefaultBeatmap => workingBeatmapCache.DefaultBeatmap;
public IWorkingBeatmap DefaultBeatmap => workingBeatmapCache.DefaultBeatmap;
/// <summary>
/// Fired when a notification should be presented to the user.

View File

@ -9,9 +9,9 @@ namespace osu.Game.Beatmaps.Drawables
{
public class BeatmapBackgroundSprite : Sprite
{
private readonly WorkingBeatmap working;
private readonly IWorkingBeatmap working;
public BeatmapBackgroundSprite(WorkingBeatmap working)
public BeatmapBackgroundSprite(IWorkingBeatmap working)
{
if (working == null)
throw new ArgumentNullException(nameof(working));

View File

@ -37,7 +37,7 @@ protected override void LoadComplete()
base.LoadComplete();
string verb;
BeatmapInfo beatmapInfo;
IBeatmapInfo beatmapInfo;
switch (api.Activity.Value)
{
@ -57,7 +57,7 @@ protected override void LoadComplete()
break;
}
string beatmapString = beatmapInfo.OnlineID.HasValue ? $"[{api.WebsiteRootUrl}/b/{beatmapInfo.OnlineID} {beatmapInfo}]" : beatmapInfo.ToString();
string beatmapString = beatmapInfo.OnlineID > 0 ? $"[{api.WebsiteRootUrl}/b/{beatmapInfo.OnlineID} {beatmapInfo}]" : beatmapInfo.ToString();
channelManager.PostMessage($"is {verb} {beatmapString}", true, target);
Expire();

View File

@ -25,7 +25,7 @@ namespace osu.Game.Screens.Play
/// </summary>
public class BeatmapMetadataDisplay : Container
{
private readonly WorkingBeatmap beatmap;
private readonly IWorkingBeatmap beatmap;
private readonly Bindable<IReadOnlyList<Mod>> mods;
private readonly Drawable logoFacade;
private LoadingSpinner loading;
@ -43,7 +43,7 @@ public bool Loading
}
}
public BeatmapMetadataDisplay(WorkingBeatmap beatmap, Bindable<IReadOnlyList<Mod>> mods, Drawable logoFacade)
public BeatmapMetadataDisplay(IWorkingBeatmap beatmap, Bindable<IReadOnlyList<Mod>> mods, Drawable logoFacade)
{
this.beatmap = beatmap;
this.logoFacade = logoFacade;

View File

@ -354,7 +354,7 @@ private void load(AudioManager audio, OsuConfigManager config, OsuGameBase game)
private Drawable createUnderlayComponents() =>
DimmableStoryboard = new DimmableStoryboard(Beatmap.Value.Storyboard) { RelativeSizeAxes = Axes.Both };
private Drawable createGameplayComponents(WorkingBeatmap working, IBeatmap playableBeatmap) => new ScalingContainer(ScalingMode.Gameplay)
private Drawable createGameplayComponents(IWorkingBeatmap working, IBeatmap playableBeatmap) => new ScalingContainer(ScalingMode.Gameplay)
{
Children = new Drawable[]
{
@ -372,7 +372,7 @@ private Drawable createUnderlayComponents() =>
}
};
private Drawable createOverlayComponents(WorkingBeatmap working)
private Drawable createOverlayComponents(IWorkingBeatmap working)
{
var container = new Container
{

View File

@ -15,9 +15,9 @@ namespace osu.Game.Screens.Select
{
internal class BeatmapInfoWedgeBackground : CompositeDrawable
{
private readonly WorkingBeatmap beatmap;
private readonly IWorkingBeatmap beatmap;
public BeatmapInfoWedgeBackground(WorkingBeatmap beatmap)
public BeatmapInfoWedgeBackground(IWorkingBeatmap beatmap)
{
this.beatmap = beatmap;
}

View File

@ -14,7 +14,7 @@ namespace osu.Game.Screens.Select.Carousel
{
public class SetPanelBackground : BufferedContainer
{
public SetPanelBackground(WorkingBeatmap working)
public SetPanelBackground(IWorkingBeatmap working)
: base(cachedFrameBuffer: true)
{
RedrawOnScale = false;

View File

@ -671,7 +671,7 @@ private void endLooping()
music.TrackChanged -= ensureTrackLooping;
}
private void ensureTrackLooping(WorkingBeatmap beatmap, TrackChangeDirection changeDirection)
private void ensureTrackLooping(IWorkingBeatmap beatmap, TrackChangeDirection changeDirection)
=> beatmap.PrepareTrackForPreviewLooping();
public override bool OnBackButton()

View File

@ -89,7 +89,7 @@ public bool ReplacesBackground
}
}
public DrawableStoryboard CreateDrawable(WorkingBeatmap working = null) =>
public DrawableStoryboard CreateDrawable(IWorkingBeatmap working = null) =>
new DrawableStoryboard(this);
public Drawable CreateSpriteFromResourcePath(string path, TextureStore textureStore)

View File

@ -27,11 +27,11 @@ public class ChoosingBeatmap : UserActivity
public abstract class InGame : UserActivity
{
public BeatmapInfo BeatmapInfo { get; }
public IBeatmapInfo BeatmapInfo { get; }
public RulesetInfo Ruleset { get; }
protected InGame(BeatmapInfo beatmapInfo, RulesetInfo ruleset)
protected InGame(IBeatmapInfo beatmapInfo, RulesetInfo ruleset)
{
BeatmapInfo = beatmapInfo;
Ruleset = ruleset;
@ -42,7 +42,7 @@ protected InGame(BeatmapInfo beatmapInfo, RulesetInfo ruleset)
public class InMultiplayerGame : InGame
{
public InMultiplayerGame(BeatmapInfo beatmapInfo, RulesetInfo ruleset)
public InMultiplayerGame(IBeatmapInfo beatmapInfo, RulesetInfo ruleset)
: base(beatmapInfo, ruleset)
{
}
@ -52,7 +52,7 @@ public InMultiplayerGame(BeatmapInfo beatmapInfo, RulesetInfo ruleset)
public class InPlaylistGame : InGame
{
public InPlaylistGame(BeatmapInfo beatmapInfo, RulesetInfo ruleset)
public InPlaylistGame(IBeatmapInfo beatmapInfo, RulesetInfo ruleset)
: base(beatmapInfo, ruleset)
{
}
@ -60,7 +60,7 @@ public InPlaylistGame(BeatmapInfo beatmapInfo, RulesetInfo ruleset)
public class InSoloGame : InGame
{
public InSoloGame(BeatmapInfo beatmapInfo, RulesetInfo ruleset)
public InSoloGame(IBeatmapInfo beatmapInfo, RulesetInfo ruleset)
: base(beatmapInfo, ruleset)
{
}
@ -68,9 +68,9 @@ public InSoloGame(BeatmapInfo beatmapInfo, RulesetInfo ruleset)
public class Editing : UserActivity
{
public BeatmapInfo BeatmapInfo { get; }
public IBeatmapInfo BeatmapInfo { get; }
public Editing(BeatmapInfo info)
public Editing(IBeatmapInfo info)
{
BeatmapInfo = info;
}