Beispiel #1
0
        private void carouselBeatmapsLoaded()
        {
            if (rulesetNoDebounce == null)
            {
                // manual binding to parent ruleset to allow for delayed load in the incoming direction.
                rulesetNoDebounce          = Ruleset.Value = base.Ruleset.Value;
                base.Ruleset.ValueChanged += updateSelectedRuleset;
                Ruleset.ValueChanged      += r => base.Ruleset.Value = r;

                Beatmap.BindDisabledChanged(disabled => Carousel.AllowSelection = !disabled, true);
                Beatmap.BindValueChanged(workingBeatmapChanged);
            }

            if (!Beatmap.IsDefault && Beatmap.Value.BeatmapSetInfo?.DeletePending == false && Beatmap.Value.BeatmapSetInfo?.Protected == false &&
                Carousel.SelectBeatmap(Beatmap.Value.BeatmapInfo, false))
            {
                return;
            }

            if (Carousel.SelectedBeatmapSet == null && !Carousel.SelectNextRandom())
            {
                // in the case random selection failed, we want to trigger selectionChanged
                // to show the dummy beatmap (we have nothing else to display).
                performUpdateSelected();
            }
        }
Beispiel #2
0
        private void load(BeatmapManager beatmaps, AudioManager audio, DialogOverlay dialog, OsuColour colours)
        {
            // manual binding to parent ruleset to allow for delayed load in the incoming direction.
            base.Ruleset.ValueChanged += r => updateSelectedBeatmap(beatmapNoDebounce);
            Ruleset.ValueChanged      += r => base.Ruleset.Value = r;

            if (Footer != null)
            {
                Footer.AddButton(@"random", colours.Green, triggerRandom, Key.F2);
                Footer.AddButton(@"options", colours.Blue, BeatmapOptions, Key.F3);

                BeatmapOptions.AddButton(@"Delete", @"Beatmap", FontAwesome.fa_trash, colours.Pink, () => delete(Beatmap.Value.BeatmapSetInfo), Key.Number4, float.MaxValue);
            }

            if (this.beatmaps == null)
            {
                this.beatmaps = beatmaps;
            }

            this.beatmaps.ItemAdded       += onBeatmapSetAdded;
            this.beatmaps.ItemRemoved     += onBeatmapSetRemoved;
            this.beatmaps.BeatmapHidden   += onBeatmapHidden;
            this.beatmaps.BeatmapRestored += onBeatmapRestored;

            dialogOverlay = dialog;

            sampleChangeDifficulty = audio.Sample.Get(@"SongSelect/select-difficulty");
            sampleChangeBeatmap    = audio.Sample.Get(@"SongSelect/select-expand");

            Carousel.BeatmapSets = this.beatmaps.GetAllUsableBeatmapSetsEnumerable();

            Beatmap.BindDisabledChanged(disabled => Carousel.AllowSelection = !disabled, true);
            Beatmap.BindValueChanged(workingBeatmapChanged);
        }
Beispiel #3
0
        private void load(BeatmapManager beatmaps, AudioManager audio, DialogOverlay dialog, OsuColour colours)
        {
            dependencies.CacheAs(this);
            dependencies.CacheAs(Ruleset);
            dependencies.CacheAs <IBindable <RulesetInfo> >(Ruleset);

            if (Footer != null)
            {
                Footer.AddButton(@"random", colours.Green, triggerRandom, Key.F2);
                Footer.AddButton(@"options", colours.Blue, BeatmapOptions, Key.F3);

                BeatmapOptions.AddButton(@"Delete", @"Beatmap", FontAwesome.fa_trash, colours.Pink, () => delete(Beatmap.Value.BeatmapSetInfo), Key.Number4, float.MaxValue);
            }

            if (this.beatmaps == null)
            {
                this.beatmaps = beatmaps;
            }

            this.beatmaps.ItemAdded       += onBeatmapSetAdded;
            this.beatmaps.ItemRemoved     += onBeatmapSetRemoved;
            this.beatmaps.BeatmapHidden   += onBeatmapHidden;
            this.beatmaps.BeatmapRestored += onBeatmapRestored;

            dialogOverlay = dialog;

            sampleChangeDifficulty = audio.Sample.Get(@"SongSelect/select-difficulty");
            sampleChangeBeatmap    = audio.Sample.Get(@"SongSelect/select-expand");

            Carousel.BeatmapSets = this.beatmaps.GetAllUsableBeatmapSetsEnumerable();

            Beatmap.BindDisabledChanged(disabled => Carousel.AllowSelection = !disabled, true);
            Beatmap.BindValueChanged(workingBeatmapChanged);
        }
Beispiel #4
0
        private void bindBindables()
        {
            if (boundLocalBindables)
            {
                return;
            }

            // manual binding to parent ruleset to allow for delayed load in the incoming direction.
            rulesetNoDebounce     = decoupledRuleset.Value = Ruleset.Value;
            Ruleset.ValueChanged += r => updateSelectedRuleset(r.NewValue);

            decoupledRuleset.ValueChanged    += r => Ruleset.Value = r.NewValue;
            decoupledRuleset.DisabledChanged += r => Ruleset.Disabled = r;

            Beatmap.BindDisabledChanged(disabled => Carousel.AllowSelection = !disabled, true);
            Beatmap.BindValueChanged(workingBeatmapChanged);

            boundLocalBindables = true;
        }