mirror of
https://github.com/osukey/osukey.git
synced 2025-08-04 23:24:04 +09:00
Privatise the OsuGame beatmap, add local beatmap to OsuTestCase
This commit is contained in:
@ -30,6 +30,8 @@ namespace osu.Game.Screens.Select
|
||||
protected readonly BeatmapDetailArea BeatmapDetails;
|
||||
private bool removeAutoModOnResume;
|
||||
|
||||
private GameBeatmap beatmap;
|
||||
|
||||
public PlaySongSelect()
|
||||
{
|
||||
FooterPanels.Add(modSelect = new ModSelectOverlay
|
||||
@ -53,8 +55,10 @@ namespace osu.Game.Screens.Select
|
||||
public readonly Bindable<IEnumerable<Mod>> SelectedMods = new Bindable<IEnumerable<Mod>>(new List<Mod>());
|
||||
|
||||
[BackgroundDependencyLoader(true)]
|
||||
private void load(OsuColour colours, AudioManager audio, BeatmapManager beatmaps, DialogOverlay dialogOverlay, OsuGame osu)
|
||||
private void load(OsuColour colours, AudioManager audio, BeatmapManager beatmaps, DialogOverlay dialogOverlay, OsuGame osu, GameBeatmap beatmap)
|
||||
{
|
||||
this.beatmap = beatmap.GetBoundCopy();
|
||||
|
||||
if (osu != null) SelectedMods.BindTo(osu.SelectedMods);
|
||||
modSelect.SelectedMods.BindTo(SelectedMods);
|
||||
|
||||
@ -156,7 +160,7 @@ namespace osu.Game.Screens.Select
|
||||
}
|
||||
|
||||
Beatmap.Value.Track.Looping = false;
|
||||
Beatmap.Disabled = true;
|
||||
beatmap.Disabled = true;
|
||||
|
||||
sampleConfirm?.Play();
|
||||
|
||||
|
@ -65,6 +65,8 @@ namespace osu.Game.Screens.Select
|
||||
|
||||
private CancellationTokenSource initialAddSetsTask;
|
||||
|
||||
private GameBeatmap beatmap;
|
||||
|
||||
private DependencyContainer dependencies;
|
||||
protected override IReadOnlyDependencyContainer CreateLocalDependencies(IReadOnlyDependencyContainer parent) => dependencies = new DependencyContainer(parent);
|
||||
|
||||
@ -179,8 +181,10 @@ namespace osu.Game.Screens.Select
|
||||
}
|
||||
|
||||
[BackgroundDependencyLoader(permitNulls: true)]
|
||||
private void load(BeatmapManager beatmaps, AudioManager audio, DialogOverlay dialog, OsuGame osu, OsuColour colours)
|
||||
private void load(BeatmapManager beatmaps, AudioManager audio, DialogOverlay dialog, OsuGame osu, OsuColour colours, GameBeatmap beatmap)
|
||||
{
|
||||
this.beatmap = beatmap.GetBoundCopy();
|
||||
|
||||
dependencies.CacheAs(this);
|
||||
|
||||
if (Footer != null)
|
||||
@ -212,14 +216,14 @@ namespace osu.Game.Screens.Select
|
||||
Carousel.BeatmapSets = this.beatmaps.GetAllUsableBeatmapSets();
|
||||
|
||||
Beatmap.DisabledChanged += disabled => Carousel.AllowSelection = !disabled;
|
||||
Beatmap.TriggerChange();
|
||||
|
||||
Beatmap.ValueChanged += workingBeatmapChanged;
|
||||
|
||||
workingBeatmapChanged(Beatmap.Value);
|
||||
}
|
||||
|
||||
public void Edit(BeatmapInfo beatmap)
|
||||
{
|
||||
Beatmap.Value = beatmaps.GetWorkingBeatmap(beatmap, Beatmap);
|
||||
this.beatmap.Value = beatmaps.GetWorkingBeatmap(beatmap, Beatmap.Value);
|
||||
Push(new Editor());
|
||||
}
|
||||
|
||||
@ -283,7 +287,7 @@ namespace osu.Game.Screens.Select
|
||||
{
|
||||
bool preview = beatmap?.BeatmapSetInfoID != Beatmap.Value?.BeatmapInfo.BeatmapSetInfoID;
|
||||
|
||||
Beatmap.Value = beatmaps.GetWorkingBeatmap(beatmap, Beatmap);
|
||||
this.beatmap.Value = beatmaps.GetWorkingBeatmap(beatmap, Beatmap.Value);
|
||||
ensurePlayingSelected(preview);
|
||||
}
|
||||
|
||||
@ -370,7 +374,7 @@ namespace osu.Game.Screens.Select
|
||||
{
|
||||
if (Beatmap != null && !Beatmap.Value.BeatmapSetInfo.DeletePending)
|
||||
{
|
||||
UpdateBeatmap(Beatmap);
|
||||
UpdateBeatmap(Beatmap.Value);
|
||||
ensurePlayingSelected();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user