// 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.Allocation; using osu.Framework.Extensions.LocalisationExtensions; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Shapes; using osu.Framework.Localisation; using osu.Game.Graphics; using osu.Game.Graphics.Sprites; namespace osu.Game.Overlays.BeatmapSet { public abstract partial class BeatmapBadge : CompositeDrawable { /// <summary> /// The text displayed on the badge's label. /// </summary> public LocalisableString BadgeText { set => badgeLabel.Text = value.ToUpper(); } /// <summary> /// The colour of the badge's label. /// </summary> public Colour4 BadgeColour { set => badgeLabel.Colour = value; } private readonly Box background; private readonly OsuSpriteText badgeLabel; protected BeatmapBadge() { AutoSizeAxes = Axes.Both; InternalChild = new CircularContainer { Masking = true, AutoSizeAxes = Axes.Both, Children = new Drawable[] { background = new Box { RelativeSizeAxes = Axes.Both, }, badgeLabel = new OsuSpriteText { Font = OsuFont.GetFont(size: 10, weight: FontWeight.SemiBold), Margin = new MarginPadding { Horizontal = 10, Vertical = 2 }, } } }; } [BackgroundDependencyLoader(true)] private void load(OsuColour colours, OverlayColourProvider? colourProvider) { background.Colour = colourProvider?.Background5 ?? colours.Gray2; } } }