Beispiel #1
0
        public override void Initialize()
        {
            //background
            baseSpriteManager.Add(new pSprite(GameBase.WhitePixel, Fields.Native, Origins.TopLeft, Clocks.Game, Vector2.Zero, 0, true, c_background)
            {
                VectorScale = new Vector2(GameBase.WindowManager.Width, GameBase.WindowManager.Height)
            });

            //header
            pText textCharts = new pText("Charts" + @" /", 28, new Vector2(PADDING, 60), 1, true, Color.White)
            {
                Origin = Origins.BottomLeft
            };

            baseSpriteManager.Add(textCharts);

            t_currentCategory = new pText("All Charts", 20, new Vector2(120f, 58), 1, true, new Color(254, 220, 97))
            {
                Origin = Origins.BottomLeft
            };
            baseSpriteManager.Add(t_currentCategory);

            searchBox           = new pSearchBox(18, new Vector2(PADDING, 33), 20, Graphics.Renderers.TextAlignment.Right);
            searchBox.OnChange += searchBox_OnChange;
            baseSpriteManager.Add(searchBox.SpriteCollection);

            baseSpriteManager.Add(new pBox(new Vector2(PADDING, 62), new Vector2(GameBase.WindowManager.WidthScaled - (PADDING * 2), 1), 1, Color.White));

            t_categorySelection = new pText("All  /  Monthly  /  Themed  /  Special", 14, new Vector2(PADDING, 70), 1, true, Color.White)
            {
                Origin = Origins.TopLeft
            };
            baseSpriteManager.Add(t_categorySelection);

            //list

            sa_chartList = new pScrollableArea(new RectangleF(PADDING / 2, 90, GameBase.WindowManager.WidthScaled - PADDING, GameBase.WindowManager.HeightScaled - PADDING - 90), Vector2.Zero, true);

            pWebRequest req = new pWebRequest("https://osu.ppy.sh/web/osu-getcharts.php?u={0}&h={1}", ConfigManager.sUsername, ConfigManager.sPassword);

            req.Finished += delegate(pWebRequest r, Exception e)
            {
                charts = JsonConvert.DeserializeObject <List <Chart> >(r.ResponseString);

                DoLayout();
            };

            req.Perform();

            //footer
            backButton = new BackButton(delegate { GameBase.ChangeMode(OsuModes.Menu); });

            spriteManagerTop.Add(backButton.SpriteCollection);

            KeyboardHandler.OnKeyPressed += onKeyPressed;

            base.Initialize();
        }
Beispiel #2
0
        public JumpTo()
            : base(LocalisationManager.GetString(OsuString.JumpToDialog_Title), true)
        {
            spriteManager.Add(new pBox(new Vector2(PADDING, 79), new Vector2(GameBase.WindowManager.WidthScaled - (PADDING * 2), 1), 1, Color.White));
            spriteManager.Add(new pBox(new Vector2(PADDING, 440), new Vector2(GameBase.WindowManager.WidthScaled - (PADDING * 2), 1), 1, Color.White));
            Rectangle scrollableArea = new Rectangle(PADDING, 80, (int)(640 * GameBase.WindowManager.WidthWidescreenRatio) - (PADDING * 2), 360);

            scrollableView = new pScrollableArea(scrollableArea, Vector2.Zero, true, 0, defaultTargetType);
            mapManager     = new SpriteManager(true);
            topLayer       = new SpriteManager(true);
            mapManager.SetWidescreen(GameBase.WindowManager.IsWidescreen);
            collectionLabel = new pText(LocalisationManager.GetString(OsuString.SongSelection_Collections) + ":", 20, new Vector2(PADDING, 30), 2, true, new Color(254, 220, 97));
            collections     = new pDropdown(topLayer, "All", new Vector2(PADDING, 55), 140, 3);
            searchBox       = new pSearchBox(20, new Vector2(PADDING, 50), 20, Graphics.Renderers.TextAlignment.Right);
            searchTime      = -1;
            spriteManager.Add(searchBox.SpriteCollection);
            spriteManager.Add(collectionLabel);
            scrollableView.AddChild(mapManager);

            searchBox.OnChange += delegate(pTextBox sender, bool newText)
            {
                if (!newText)
                {
                    return;
                }

                if (searchBox.IsDefault && searchBox.textBeforeCommit.Length == 1)
                {
                    searchTime = GameBase.Time;
                }
                else if (!searchBox.IsDefault)
                {
                    searchTime = GameBase.Time + 300;
                }
            };

            Closed += delegate
            {
                MusicControl.ClearPool();
            };

            collections.AddOption("All", "All");
            collections.SetSelected("All", true);

            foreach (string c in CollectionManager.Collections.Keys)
            {
                collections.AddOption(c, c);
            }

            collections.OnSelect += collections_OnSelect;

            SelectedMap = BeatmapManager.Current;

            layout();
        }