mirror of
https://github.com/ppy/osu
synced 2025-02-03 20:02:16 +00:00
83 lines
2.8 KiB
C#
83 lines
2.8 KiB
C#
// Copyright (c) 2007-2017 ppy Pty Ltd <contact@ppy.sh>.
|
|
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
|
|
|
using OpenTK;
|
|
using OpenTK.Graphics;
|
|
using osu.Framework.Extensions.Color4Extensions;
|
|
using osu.Framework.Graphics;
|
|
using osu.Framework.Graphics.Containers;
|
|
using osu.Game.Beatmaps;
|
|
using osu.Game.Graphics.Sprites;
|
|
using osu.Game.Users;
|
|
|
|
namespace osu.Game.Overlays.OnlineBeatmapSet
|
|
{
|
|
public class AuthorInfo : Container
|
|
{
|
|
private const float height = 50;
|
|
|
|
public AuthorInfo(BeatmapSetOnlineInfo info)
|
|
{
|
|
RelativeSizeAxes = Axes.X;
|
|
Height = height;
|
|
|
|
Children = new Drawable[]
|
|
{
|
|
new UpdateableAvatar
|
|
{
|
|
Size = new Vector2(height),
|
|
CornerRadius = 3,
|
|
Masking = true,
|
|
User = info.Author,
|
|
EdgeEffect = new EdgeEffectParameters
|
|
{
|
|
Colour = Color4.Black.Opacity(0.25f),
|
|
Type = EdgeEffectType.Shadow,
|
|
Radius = 3,
|
|
Offset = new Vector2(0f, 1f),
|
|
},
|
|
},
|
|
new FillFlowContainer
|
|
{
|
|
RelativeSizeAxes = Axes.Both,
|
|
Direction = FillDirection.Vertical,
|
|
Padding = new MarginPadding { Left = height + 5 },
|
|
Children = new Drawable[]
|
|
{
|
|
new Field("made by", info.Author.Username, @"Exo2.0-RegularItalic"),
|
|
new Field("submitted on", info.Submitted.ToString(@"MMM d, yyyy"), @"Exo2.0-Bold")
|
|
{
|
|
Margin = new MarginPadding { Top = 5 },
|
|
},
|
|
new Field(info.Ranked == null ? "last updated on " : "ranked on ", (info.Ranked == null ? info.Submitted : info.Ranked).ToString(@"MMM d, yyyy"), @"Exo2.0-Bold"),
|
|
},
|
|
},
|
|
};
|
|
}
|
|
|
|
private class Field : FillFlowContainer
|
|
{
|
|
public Field(string first, string second, string secondFont)
|
|
{
|
|
AutoSizeAxes = Axes.Both;
|
|
Direction = FillDirection.Horizontal;
|
|
|
|
Children = new[]
|
|
{
|
|
new OsuSpriteText
|
|
{
|
|
Text = $"{first} ",
|
|
TextSize = 13,
|
|
},
|
|
new OsuSpriteText
|
|
{
|
|
Text = second,
|
|
TextSize = 13,
|
|
Font = secondFont,
|
|
},
|
|
};
|
|
}
|
|
}
|
|
}
|
|
}
|