1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-21 21:27:24 +08:00

Implement DashboardPopularBeatmapPanel component

This commit is contained in:
Andrei Zavatski 2020-08-01 06:23:06 +03:00
parent ce47a34991
commit 7624804edf
3 changed files with 75 additions and 4 deletions

View File

@ -9,6 +9,7 @@ using osu.Game.Overlays;
using osu.Framework.Allocation;
using osu.Game.Users;
using System;
using osuTK;
namespace osu.Game.Tests.Visual.UserInterface
{
@ -19,17 +20,23 @@ namespace osu.Game.Tests.Visual.UserInterface
public TestSceneDashboardBeatmapPanel()
{
Add(new Container
Add(new FillFlowContainer
{
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
AutoSizeAxes = Axes.Y,
Width = 300,
Child = new DashboardNewBeatmapPanel(beatmap_set)
Spacing = new Vector2(0, 10),
Direction = FillDirection.Vertical,
Children = new Drawable[]
{
new DashboardNewBeatmapPanel(new_beatmap_set),
new DashboardPopularBeatmapPanel(popular_beatmap_set)
}
});
}
private static readonly BeatmapSetInfo beatmap_set = new BeatmapSetInfo
private static readonly BeatmapSetInfo new_beatmap_set = new BeatmapSetInfo
{
Metadata = new BeatmapMetadata
{
@ -50,5 +57,27 @@ namespace osu.Game.Tests.Visual.UserInterface
Ranked = DateTimeOffset.Now
}
};
private static readonly BeatmapSetInfo popular_beatmap_set = new BeatmapSetInfo
{
Metadata = new BeatmapMetadata
{
Title = "Title",
Artist = "Artist",
Author = new User
{
Username = "author",
Id = 100
}
},
OnlineInfo = new BeatmapSetOnlineInfo
{
Covers = new BeatmapSetOnlineCovers
{
Cover = "https://assets.ppy.sh/beatmaps/1189904/covers/cover.jpg?1595456608",
},
FavouriteCount = 100
}
};
}
}

View File

@ -112,7 +112,7 @@ namespace osu.Game.Overlays.Dashboard.Dashboard
{
AutoSizeAxes = Axes.Both,
Direction = FillDirection.Horizontal,
Spacing = new Vector2(5, 0),
Spacing = new Vector2(3, 0),
Margin = new MarginPadding { Top = 2 },
Children = new Drawable[]
{

View File

@ -0,0 +1,42 @@
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Sprites;
using osu.Game.Beatmaps;
using osu.Game.Graphics;
using osu.Game.Graphics.Sprites;
using osuTK;
namespace osu.Game.Overlays.Dashboard.Dashboard
{
public class DashboardPopularBeatmapPanel : DashboardBeatmapPanel
{
public DashboardPopularBeatmapPanel(BeatmapSetInfo setInfo)
: base(setInfo)
{
}
protected override Drawable CreateInfo() => new FillFlowContainer
{
AutoSizeAxes = Axes.Both,
Direction = FillDirection.Horizontal,
Spacing = new Vector2(3, 0),
Colour = ColourProvider.Foreground1,
Children = new Drawable[]
{
new SpriteIcon
{
Size = new Vector2(10),
Icon = FontAwesome.Solid.Heart
},
new OsuSpriteText
{
Font = OsuFont.GetFont(size: 10),
Text = SetInfo.OnlineInfo.FavouriteCount.ToString()
}
}
};
}
}