Пример #1
0
        public override void Reset()
        {
            base.Reset();
            if (db == null)
            {
                storage = new TestStorage(@"TestCasePlaySongSelect");

                var backingDatabase = storage.GetDatabase(@"client");

                rulesets = new RulesetDatabase(storage, backingDatabase);
                db       = new BeatmapDatabase(storage, backingDatabase, rulesets);

                var sets = new List <BeatmapSetInfo>();

                for (int i = 0; i < 100; i += 10)
                {
                    sets.Add(createTestBeatmapSet(i));
                }

                db.Import(sets);
            }

            Add(songSelect = new PlaySongSelect());

            AddStep(@"Sort by Artist", delegate { songSelect.FilterControl.Sort = SortMode.Artist; });
            AddStep(@"Sort by Title", delegate { songSelect.FilterControl.Sort = SortMode.Title; });
            AddStep(@"Sort by Author", delegate { songSelect.FilterControl.Sort = SortMode.Author; });
            AddStep(@"Sort by Difficulty", delegate { songSelect.FilterControl.Sort = SortMode.Difficulty; });
        }
Пример #2
0
        private void load()
        {
            Dependencies.Cache(this);
            Dependencies.Cache(LocalConfig);

            SQLiteConnection connection = Host.Storage.GetDatabase(@"client");

            Dependencies.Cache(RulesetDatabase = new RulesetDatabase(Host.Storage, connection));
            Dependencies.Cache(BeatmapDatabase = new BeatmapDatabase(Host.Storage, connection, RulesetDatabase, Host));
            Dependencies.Cache(ScoreDatabase   = new ScoreDatabase(Host.Storage, connection, Host, BeatmapDatabase));
            Dependencies.Cache(new OsuColour());

            //this completely overrides the framework default. will need to change once we make a proper FontStore.
            Dependencies.Cache(Fonts = new FontStore {
                ScaleAdjust = 100
            }, true);

            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/FontAwesome"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/osuFont"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-Medium"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-MediumItalic"));

            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Noto-Basic"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Noto-Hangul"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Noto-CJK-Basic"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Noto-CJK-Compatibility"));

            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-Regular"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-RegularItalic"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-SemiBold"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-SemiBoldItalic"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-Bold"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-BoldItalic"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-Light"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-LightItalic"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-Black"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-BlackItalic"));

            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Venera"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Venera-Light"));

            var defaultBeatmap = new DummyWorkingBeatmap(this);

            Beatmap = new NonNullableBindable <WorkingBeatmap>(defaultBeatmap);
            BeatmapDatabase.DefaultBeatmap = defaultBeatmap;

            OszArchiveReader.Register();

            Dependencies.Cache(API = new APIAccess
            {
                Username = LocalConfig.Get <string>(OsuSetting.Username),
                Token    = LocalConfig.Get <string>(OsuSetting.Token)
            });

            API.Register(this);
        }
Пример #3
0
        private void load(OsuGame game, RulesetDatabase rulesets, OsuColour colours)
        {
            DisplayStyleControl.Dropdown.AccentColour = colours.BlueDark;

            var b = new Bindable <RulesetInfo>(); //backup bindable incase the game is null

            foreach (var r in rulesets.AllRulesets)
            {
                modeButtons.Add(new RulesetToggleButton(game?.Ruleset ?? b, r));
            }
        }
Пример #4
0
 private void load(RulesetDatabase rulesets)
 {
     foreach (Ruleset ruleset in rulesets.AllRulesets.Select(info => info.CreateInstance()))
     {
         SettingsSubsection section = ruleset.CreateSettings();
         if (section != null)
         {
             Add(section);
         }
     }
 }
Пример #5
0
        private void load(OsuGame game, RulesetDatabase rulesets, OsuColour colours)
        {
            DisplayStyleControl.Dropdown.AccentColour = colours.BlueDark;

            Ruleset.BindTo(game?.Ruleset ?? new Bindable <RulesetInfo> {
                Value = rulesets.GetRuleset(0)
            });
            foreach (var r in rulesets.AllRulesets)
            {
                modeButtons.Add(new RulesetToggleButton(Ruleset, r));
            }
        }
Пример #6
0
        private void load(OsuGameBase game, OsuColour colours, RulesetDatabase rulesets)
        {
            RelativeSizeAxes = Axes.X;
            AutoSizeAxes     = Axes.Y;
            Direction        = FillDirection.Vertical;
            Padding          = new MarginPadding {
                Top = 20, Bottom = 30
            };

            var modes = new List <Drawable>();

            foreach (var ruleset in rulesets.AllRulesets)
            {
                modes.Add(new TextAwesome
                {
                    Icon     = ruleset.CreateInstance().Icon,
                    Colour   = Color4.Gray,
                    TextSize = 20
                });
            }

            Children = new Drawable[]
            {
                new FillFlowContainer
                {
                    Anchor       = Anchor.TopCentre,
                    Origin       = Anchor.TopCentre,
                    Direction    = FillDirection.Full,
                    AutoSizeAxes = Axes.Both,
                    Children     = modes,
                    Spacing      = new Vector2(5),
                    Padding      = new MarginPadding {
                        Bottom = 10
                    },
                },
                new OsuSpriteText
                {
                    Anchor   = Anchor.TopCentre,
                    Origin   = Anchor.TopCentre,
                    Text     = game.Name,
                    TextSize = 18,
                    Font     = @"Exo2.0-Bold",
                },
                new OsuSpriteText
                {
                    Anchor   = Anchor.TopCentre,
                    Origin   = Anchor.TopCentre,
                    TextSize = 14,
                    Text     = game.Version,
                    Colour   = game.IsDebug ? colours.Red : Color4.White,
                },
            };
        }
Пример #7
0
        public DatabaseController(GameHost host, DependencyContainer dependencies)
        {
            Dependencies = dependencies;
            Connection   = host.Storage.GetDatabase(@"client");

            Dependencies.Cache(debugConfig  = new FrameworkDebugConfigManager());
            Dependencies.Cache(config       = new FrameworkConfigManager(host.Storage));
            Dependencies.Cache(Localisation = new LocalisationEngine(config));

            Dependencies.Cache(RulesetDatabase = new RulesetDatabase(host.Storage, Connection));
            Dependencies.Cache(BeatmapDatabase = new BeatmapDatabase(host.Storage, Connection, RulesetDatabase, host));
            Dependencies.Cache(ScoreDatabase   = new ScoreDatabase(host.Storage, Connection, host, BeatmapDatabase));
        }
Пример #8
0
 public BeatmapInfo ToBeatmap(RulesetDatabase rulesets)
 {
     return(new BeatmapInfo
     {
         Metadata = this,
         Ruleset = rulesets.GetRuleset(ruleset),
         StarDifficulty = starDifficulty,
         OnlineInfo = new BeatmapOnlineInfo
         {
             PlayCount = playCount,
             PassCount = passCount,
         },
     });
 }
Пример #9
0
 public BeatmapSetInfo ToBeatmapSet(RulesetDatabase rulesets)
 {
     return(new BeatmapSetInfo
     {
         Metadata = this,
         OnlineInfo = new BeatmapSetOnlineInfo
         {
             Covers = covers,
             Preview = preview,
             PlayCount = playCount,
             FavouriteCount = favouriteCount,
         },
         Beatmaps = beatmaps.Select(b => b.ToBeatmap(rulesets)).ToList(),
     });
 }
Пример #10
0
        private void load(OsuColour colours, OsuGame osu, RulesetDatabase rulesets)
        {
            lowMultiplierColour  = colours.Red;
            highMultiplierColour = colours.Green;

            if (osu != null)
            {
                Ruleset.BindTo(osu.Ruleset);
            }
            else
            {
                Ruleset.Value = rulesets.AllRulesets.First();
            }

            Ruleset.ValueChanged += rulesetChanged;
            Ruleset.TriggerChange();
        }
Пример #11
0
        private void load(RulesetDatabase rulesets, OsuGame game)
        {
            foreach (var r in rulesets.AllRulesets)
            {
                modeButtons.Add(new ToolbarModeButton
                {
                    Ruleset = r,
                    Action  = delegate
                    {
                        ruleset.Value = r;
                    }
                });
            }

            ruleset.ValueChanged    += rulesetChanged;
            ruleset.DisabledChanged += disabledChanged;
            ruleset.BindTo(game.Ruleset);
        }
Пример #12
0
        private void load()
        {
            if (!Host.IsPrimaryInstance)
            {
                Logger.Log(@"osu! does not support multiple running instances.", LoggingTarget.Runtime, LogLevel.Error);
                Environment.Exit(0);
            }

            if (args?.Length > 0)
            {
                var paths = args.Where(a => !a.StartsWith(@"-"));
                Task.Run(() => BeatmapDatabase.Import(paths.ToArray()));
            }

            Dependencies.Cache(this);

            configRuleset         = LocalConfig.GetBindable <int>(OsuSetting.Ruleset);
            Ruleset.Value         = RulesetDatabase.GetRuleset(configRuleset.Value);
            Ruleset.ValueChanged += r => configRuleset.Value = r.ID ?? 0;
        }
Пример #13
0
        private void load()
        {
            dependencies.Cache(this);
            dependencies.Cache(LocalConfig);

            SQLiteConnection connection = Host.Storage.GetDatabase(@"client");

            dependencies.Cache(RulesetDatabase = new RulesetDatabase(Host.Storage, connection));
            dependencies.Cache(BeatmapDatabase = new BeatmapDatabase(Host.Storage, connection, RulesetDatabase, Host));
            dependencies.Cache(ScoreDatabase   = new ScoreDatabase(Host.Storage, connection, Host, BeatmapDatabase));
            dependencies.Cache(new OsuColour());

            //this completely overrides the framework default. will need to change once we make a proper FontStore.
            dependencies.Cache(Fonts = new FontStore {
                ScaleAdjust = 100
            }, true);

            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/FontAwesome"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/osuFont"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-Medium"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-MediumItalic"));

            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Noto-Basic"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Noto-Hangul"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Noto-CJK-Basic"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Noto-CJK-Compatibility"));

            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-Regular"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-RegularItalic"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-SemiBold"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-SemiBoldItalic"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-Bold"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-BoldItalic"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-Light"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-LightItalic"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-Black"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-BlackItalic"));

            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Venera"));
            Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Venera-Light"));

            var defaultBeatmap = new DummyWorkingBeatmap(this);

            Beatmap = new NonNullableBindable <WorkingBeatmap>(defaultBeatmap);
            BeatmapDatabase.DefaultBeatmap = defaultBeatmap;

            OszArchiveReader.Register();

            dependencies.Cache(API = new APIAccess
            {
                Username = LocalConfig.Get <string>(OsuSetting.Username),
                Token    = LocalConfig.Get <string>(OsuSetting.Token)
            });

            Beatmap.ValueChanged += b =>
            {
                // compare to last baetmap as sometimes the two may share a track representation (optimisation, see WorkingBeatmap.TransferTo)
                if (lastBeatmap?.Track != b.Track)
                {
                    // this disposal is done to stop the audio track.
                    // it may not be exactly what we want for cases beatmaps are reused, as it will
                    // trigger a fresh load of contained resources.
                    lastBeatmap?.Dispose();

                    Audio.Track.AddItem(b.Track);
                }

                lastBeatmap = b;
            };

            API.Register(this);
        }
Пример #14
0
 private void load(RulesetDatabase rulesets)
 {
     this.rulesets = rulesets;
 }
Пример #15
0
 private void load(BeatmapDatabase db, RulesetDatabase rulesets)
 {
     this.rulesets = rulesets;
     this.db       = db;
 }
Пример #16
0
 private void load(BeatmapDatabase db, RulesetDatabase rulesets)
 {
     _getOsuBeatmapScript = new GetWorkingBeatmapScript(db, rulesets);
 }
Пример #17
0
 private void load(OsuColour colours, APIAccess api, RulesetDatabase rulesets)
 {
     this.api      = api;
     this.rulesets = rulesets;
     resultCountsContainer.Colour = colours.Yellow;
 }
Пример #18
0
 public GetWorkingBeatmapScript(BeatmapDatabase db, RulesetDatabase rulesets)
 {
     this.db       = db;
     this.rulesets = rulesets;
 }