1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-06 14:27:31 +08:00

Move load methods and rename loadedTrack to match other private fields

This commit is contained in:
Dean Herbert 2021-12-22 18:23:11 +09:00
parent 7344c87b16
commit a5f77a86ef

View File

@ -41,6 +41,7 @@ namespace osu.Game.Beatmaps
private readonly Lazy<Waveform> waveform; private readonly Lazy<Waveform> waveform;
private readonly Lazy<Storyboard> storyboard; private readonly Lazy<Storyboard> storyboard;
private readonly Lazy<ISkin> skin; private readonly Lazy<ISkin> skin;
private Track track; // track is not Lazy as we allow transferring and loading multiple times.
protected WorkingBeatmap(BeatmapInfo beatmapInfo, AudioManager audioManager) protected WorkingBeatmap(BeatmapInfo beatmapInfo, AudioManager audioManager)
{ {
@ -59,13 +60,6 @@ namespace osu.Game.Beatmaps
public Texture Background => GetBackground(); // Texture uses ref counting, so we want to return a new instance every usage. public Texture Background => GetBackground(); // Texture uses ref counting, so we want to return a new instance every usage.
public ISkin Skin => skin.Value; public ISkin Skin => skin.Value;
#region Load checks
public virtual bool TrackLoaded => loadedTrack != null;
public virtual bool BeatmapLoaded => beatmapLoadTask?.IsCompleted ?? false;
#endregion
#region Resource getters #region Resource getters
protected virtual Waveform GetWaveform() => new Waveform(null); protected virtual Waveform GetWaveform() => new Waveform(null);
@ -107,9 +101,9 @@ namespace osu.Game.Beatmaps
#region Track #region Track
private Track loadedTrack; public virtual bool TrackLoaded => track != null;
public Track LoadTrack() => loadedTrack = GetBeatmapTrack() ?? GetVirtualTrack(1000); public Track LoadTrack() => track = GetBeatmapTrack() ?? GetVirtualTrack(1000);
public void PrepareTrackForPreviewLooping() public void PrepareTrackForPreviewLooping()
{ {
@ -133,7 +127,7 @@ namespace osu.Game.Beatmaps
/// across difficulties in the same beatmap set. /// across difficulties in the same beatmap set.
/// </summary> /// </summary>
/// <param name="track">The track to transfer.</param> /// <param name="track">The track to transfer.</param>
public void TransferTrack([NotNull] Track track) => loadedTrack = track ?? throw new ArgumentNullException(nameof(track)); public void TransferTrack([NotNull] Track track) => this.track = track ?? throw new ArgumentNullException(nameof(track));
/// <summary> /// <summary>
/// Get the loaded audio track instance. <see cref="LoadTrack"/> must have first been called. /// Get the loaded audio track instance. <see cref="LoadTrack"/> must have first been called.
@ -146,7 +140,7 @@ namespace osu.Game.Beatmaps
if (!TrackLoaded) if (!TrackLoaded)
throw new InvalidOperationException($"Cannot access {nameof(Track)} without first calling {nameof(LoadTrack)}."); throw new InvalidOperationException($"Cannot access {nameof(Track)} without first calling {nameof(LoadTrack)}.");
return loadedTrack; return track;
} }
} }
@ -180,6 +174,8 @@ namespace osu.Game.Beatmaps
#region Beatmap #region Beatmap
public virtual bool BeatmapLoaded => beatmapLoadTask?.IsCompleted ?? false;
public IBeatmap Beatmap public IBeatmap Beatmap
{ {
get get