osu/osu.Game/Overlays/Changelog/ChangelogListing.cs

81 lines
2.6 KiB
C#
Raw Normal View History

// 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.
2022-06-17 07:37:17 +00:00
#nullable disable
using System;
using System.Collections.Generic;
using osu.Framework.Allocation;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes;
using osu.Game.Graphics;
using osu.Game.Graphics.Sprites;
using osu.Game.Online.API.Requests.Responses;
namespace osu.Game.Overlays.Changelog
{
public class ChangelogListing : ChangelogContent
{
private readonly List<APIChangelogBuild> entries;
public ChangelogListing(List<APIChangelogBuild> entries)
{
this.entries = entries;
}
[BackgroundDependencyLoader]
2020-02-21 14:19:49 +00:00
private void load(OverlayColourProvider colourProvider)
{
2020-02-21 14:19:49 +00:00
var currentDate = DateTime.MinValue;
2019-05-19 02:58:47 +00:00
if (entries == null) return;
2020-02-21 14:19:49 +00:00
foreach (var build in entries)
{
if (build.CreatedAt.Date != currentDate)
{
if (Children.Count != 0)
{
Add(new Box
{
RelativeSizeAxes = Axes.X,
Height = 2,
2020-02-21 14:29:51 +00:00
Colour = colourProvider.Background6,
Margin = new MarginPadding { Top = 30 },
});
}
Add(new OsuSpriteText
{
Anchor = Anchor.TopCentre,
Origin = Anchor.TopCentre,
2020-02-21 14:19:49 +00:00
Margin = new MarginPadding { Top = 20 },
Text = build.CreatedAt.Date.ToString("dd MMMM yyyy"),
2019-05-31 04:54:40 +00:00
Font = OsuFont.GetFont(weight: FontWeight.Regular, size: 24),
});
currentDate = build.CreatedAt.Date;
}
else
{
Add(new Container
{
RelativeSizeAxes = Axes.X,
Height = 1,
Padding = new MarginPadding { Horizontal = ChangelogBuild.HORIZONTAL_PADDING },
Margin = new MarginPadding { Top = 30 },
Child = new Box
{
RelativeSizeAxes = Axes.Both,
2020-02-21 14:19:49 +00:00
Colour = colourProvider.Background6,
}
});
}
Add(new ChangelogBuild(build) { SelectBuild = SelectBuild });
}
}
}
}