// Copyright (c) ppy Pty Ltd . 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 { /// /// The text displayed on the badge's label. /// public LocalisableString BadgeText { set => badgeLabel.Text = value.ToUpper(); } /// /// The colour of the badge's label. /// 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; } } }