1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-16 15:43:18 +08:00

Enable nullable support on BeatmapMetadata

This commit is contained in:
Dean Herbert 2021-11-04 12:11:42 +09:00
parent dd948e5ada
commit 772b6c6dcd

View File

@ -9,6 +9,8 @@ using osu.Framework.Testing;
using osu.Game.Database; using osu.Game.Database;
using osu.Game.Users; using osu.Game.Users;
#nullable enable
namespace osu.Game.Beatmaps namespace osu.Game.Beatmaps
{ {
[ExcludeFromDynamicCompile] [ExcludeFromDynamicCompile]
@ -17,21 +19,21 @@ namespace osu.Game.Beatmaps
{ {
public int ID { get; set; } public int ID { get; set; }
public string Title { get; set; } public string Title { get; set; } = string.Empty;
[JsonProperty("title_unicode")] [JsonProperty("title_unicode")]
public string TitleUnicode { get; set; } public string TitleUnicode { get; set; } = string.Empty;
public string Artist { get; set; } public string Artist { get; set; } = string.Empty;
[JsonProperty("artist_unicode")] [JsonProperty("artist_unicode")]
public string ArtistUnicode { get; set; } public string ArtistUnicode { get; set; } = string.Empty;
[JsonIgnore] [JsonIgnore]
public List<BeatmapInfo> Beatmaps { get; set; } public List<BeatmapInfo> Beatmaps { get; set; } = new List<BeatmapInfo>();
[JsonIgnore] [JsonIgnore]
public List<BeatmapSetInfo> BeatmapSets { get; set; } public List<BeatmapSetInfo> BeatmapSets { get; set; } = new List<BeatmapSetInfo>();
/// <summary> /// <summary>
/// Helper property to deserialize a username to <see cref="User"/>. /// Helper property to deserialize a username to <see cref="User"/>.
@ -55,7 +57,7 @@ namespace osu.Game.Beatmaps
[Column("Author")] [Column("Author")]
public string AuthorString public string AuthorString
{ {
get => Author?.Username; get => Author?.Username ?? string.Empty;
set set
{ {
Author ??= new User(); Author ??= new User();
@ -67,22 +69,22 @@ namespace osu.Game.Beatmaps
/// The author of the beatmaps in this set. /// The author of the beatmaps in this set.
/// </summary> /// </summary>
[JsonIgnore] [JsonIgnore]
public User Author; public User? Author;
public string Source { get; set; } public string Source { get; set; } = string.Empty;
[JsonProperty(@"tags")] [JsonProperty(@"tags")]
public string Tags { get; set; } public string Tags { get; set; } = string.Empty;
/// <summary> /// <summary>
/// The time in milliseconds to begin playing the track for preview purposes. /// The time in milliseconds to begin playing the track for preview purposes.
/// If -1, the track should begin playing at 40% of its length. /// If -1, the track should begin playing at 40% of its length.
/// </summary> /// </summary>
public int PreviewTime { get; set; } public int PreviewTime { get; set; } = -1;
public string AudioFile { get; set; } public string AudioFile { get; set; } = string.Empty;
public string BackgroundFile { get; set; } public string BackgroundFile { get; set; } = string.Empty;
public bool Equals(BeatmapMetadata other) => ((IBeatmapMetadataInfo)this).Equals(other); public bool Equals(BeatmapMetadata other) => ((IBeatmapMetadataInfo)this).Equals(other);