Ejemplo n.º 1
0
        public TestSceneLeaderboardModSelector()
        {
            LeaderboardModSelector         modSelector;
            FillFlowContainer <SpriteText> selectedMods;

            var ruleset = new Bindable <IRulesetInfo>();

            Add(selectedMods = new FillFlowContainer <SpriteText>
            {
                Anchor = Anchor.TopLeft,
                Origin = Anchor.TopLeft,
            });

            Add(modSelector = new LeaderboardModSelector
            {
                Anchor  = Anchor.Centre,
                Origin  = Anchor.Centre,
                Ruleset = { BindTarget = ruleset }
            });

            modSelector.SelectedMods.CollectionChanged += (_, args) =>
            {
                switch (args.Action)
                {
                case NotifyCollectionChangedAction.Add:
                    args.NewItems.AsNonNull().Cast <Mod>().ForEach(mod => selectedMods.Add(new OsuSpriteText
                    {
                        Text = mod.Acronym,
                    }));
                    break;

                case NotifyCollectionChangedAction.Remove:
                    args.OldItems.AsNonNull().Cast <Mod>().ForEach(mod =>
                    {
                        foreach (var selected in selectedMods)
                        {
                            if (selected.Text == mod.Acronym)
                            {
                                selectedMods.Remove(selected);
                                break;
                            }
                        }
                    });
                    break;
                }
            };

            AddStep("osu ruleset", () => ruleset.Value   = new OsuRuleset().RulesetInfo);
            AddStep("mania ruleset", () => ruleset.Value = new ManiaRuleset().RulesetInfo);
            AddStep("taiko ruleset", () => ruleset.Value = new TaikoRuleset().RulesetInfo);
            AddStep("catch ruleset", () => ruleset.Value = new CatchRuleset().RulesetInfo);
            AddStep("Deselect all", () => modSelector.DeselectAll());
            AddStep("null ruleset", () => ruleset.Value = null);
        }
Ejemplo n.º 2
0
        public TestSceneLeaderboardModSelector()
        {
            LeaderboardModSelector         modSelector;
            FillFlowContainer <SpriteText> selectedMods;
            var ruleset = new Bindable <RulesetInfo>();

            Add(selectedMods = new FillFlowContainer <SpriteText>
            {
                Anchor = Anchor.TopLeft,
                Origin = Anchor.TopLeft,
            });

            Add(modSelector = new LeaderboardModSelector
            {
                Anchor  = Anchor.Centre,
                Origin  = Anchor.Centre,
                Ruleset = { BindTarget = ruleset }
            });

            modSelector.SelectedMods.ItemsAdded += mods =>
            {
                mods.ForEach(mod => selectedMods.Add(new OsuSpriteText
                {
                    Text = mod.Acronym,
                }));
            };

            modSelector.SelectedMods.ItemsRemoved += mods =>
            {
                mods.ForEach(mod =>
                {
                    foreach (var selected in selectedMods)
                    {
                        if (selected.Text == mod.Acronym)
                        {
                            selectedMods.Remove(selected);
                            break;
                        }
                    }
                });
            };

            AddStep("osu ruleset", () => ruleset.Value   = new OsuRuleset().RulesetInfo);
            AddStep("mania ruleset", () => ruleset.Value = new ManiaRuleset().RulesetInfo);
            AddStep("taiko ruleset", () => ruleset.Value = new TaikoRuleset().RulesetInfo);
            AddStep("catch ruleset", () => ruleset.Value = new CatchRuleset().RulesetInfo);
            AddStep("Deselect all", () => modSelector.DeselectAll());
            AddStep("null ruleset", () => ruleset.Value = null);
        }
Ejemplo n.º 3
0
 public ScoresContainer()
 {
     RelativeSizeAxes = Axes.X;
     AutoSizeAxes     = Axes.Y;
     InternalChildren = new Drawable[]
     {
         background = new Box
         {
             RelativeSizeAxes = Axes.Both,
         },
         content = new FillFlowContainer
         {
             Anchor           = Anchor.TopCentre,
             Origin           = Anchor.TopCentre,
             RelativeSizeAxes = Axes.X,
             AutoSizeAxes     = Axes.Y,
             Width            = 0.95f,
             Direction        = FillDirection.Vertical,
             Margin           = new MarginPadding {
                 Vertical = spacing
             },
             Children = new Drawable[]
             {
                 new FillFlowContainer
                 {
                     RelativeSizeAxes = Axes.X,
                     AutoSizeAxes     = Axes.Y,
                     Direction        = FillDirection.Vertical,
                     Spacing          = new Vector2(0, spacing),
                     Children         = new Drawable[]
                     {
                         new LeaderboardScopeSelector
                         {
                             Anchor  = Anchor.TopCentre,
                             Origin  = Anchor.TopCentre,
                             Current = { BindTarget = scope }
                         },
                         modSelector = new LeaderboardModSelector
                         {
                             Anchor  = Anchor.TopCentre,
                             Origin  = Anchor.TopCentre,
                             Ruleset = { BindTarget = ruleset }
                         }
                     }
                 },
                 new Container
                 {
                     AutoSizeAxes     = Axes.Y,
                     RelativeSizeAxes = Axes.X,
                     Margin           = new MarginPadding {
                         Vertical = spacing
                     },
                     Children = new Drawable[]
                     {
                         noScoresPlaceholder = new NoScoresPlaceholder
                         {
                             Anchor        = Anchor.TopCentre,
                             Origin        = Anchor.TopCentre,
                             Alpha         = 0,
                             AlwaysPresent = true,
                             Margin        = new MarginPadding {
                                 Vertical = 10
                             }
                         },
                         notSupporterPlaceholder = new NotSupporterPlaceholder
                         {
                             Anchor = Anchor.TopCentre,
                             Origin = Anchor.TopCentre,
                             Alpha  = 0,
                         },
                         new FillFlowContainer
                         {
                             RelativeSizeAxes = Axes.X,
                             AutoSizeAxes     = Axes.Y,
                             Direction        = FillDirection.Vertical,
                             Spacing          = new Vector2(0, spacing),
                             Children         = new Drawable[]
                             {
                                 topScoresContainer = new FillFlowContainer
                                 {
                                     RelativeSizeAxes = Axes.X,
                                     AutoSizeAxes     = Axes.Y,
                                     Direction        = FillDirection.Vertical,
                                     Spacing          = new Vector2(0, 5),
                                 },
                                 scoreTable = new ScoreTable
                                 {
                                     Anchor = Anchor.TopCentre,
                                     Origin = Anchor.TopCentre,
                                 }
                             }
                         },
                         new Container
                         {
                             RelativeSizeAxes = Axes.Both,
                             Masking          = true,
                             CornerRadius     = 10,
                             Child            = loading = new DimmedLoadingLayer(iconScale: 0.8f)
                             {
                                 Alpha = 0,
                             },
                         }
                     }
                 }
             }
         },
     };
 }