1
0
mirror of synced 2024-11-24 04:20:10 +01:00
TaikoSoundEditor/Data/MusicInfo.cs
2023-07-22 09:07:15 +03:00

87 lines
5.2 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
namespace TaikoSoundEditor.Data
{
internal class MusicInfo
{
[ReadOnly(true)]
[JsonPropertyName("id")] public string Id { get; set; } = "ABCDEF";
[ReadOnly(true)]
[JsonPropertyName("uniqueId")] public int UniqueId { get; set; } =0;
[JsonPropertyName("genreNo")] public int GenreNo { get; set; } =0;
[JsonPropertyName("songFileName")] public string SongFileName { get; set; } = "";
[JsonPropertyName("papamama")] public bool Papamama { get; set; } = false;
[JsonPropertyName("branchEasy")] public bool BranchEasy { get; set; } = false;
[JsonPropertyName("branchNormal")] public bool BranchNormal { get; set; } = false;
[JsonPropertyName("branchHard")] public bool BranchHard { get; set; } = false;
[JsonPropertyName("branchMania")] public bool BranchMania { get; set; } = false;
[JsonPropertyName("branchUra")] public bool BranchUra { get; set; } = false;
[JsonPropertyName("starEasy")] public int StarEasy { get; set; } = 0;
[JsonPropertyName("starNormal")] public int StarNormal { get; set; } = 0;
[JsonPropertyName("starHard")] public int StarHard { get; set; } = 0;
[JsonPropertyName("starMania")] public int StarMania { get; set; } = 0;
[JsonPropertyName("starUra")] public int StarUra { get; set; } = 0;
[JsonPropertyName("shinutiEasy")] public int ShinutiEasy { get; set; } = 0;
[JsonPropertyName("shinutiNormal")] public int ShinutiNormal { get; set; } = 0;
[JsonPropertyName("shinutiHard")] public int ShinutiHard { get; set; } = 0;
[JsonPropertyName("shinutiMania")] public int ShinutiMania { get; set; } = 0;
[JsonPropertyName("shinutiUra")] public int ShinutiUra { get; set; } = 0;
[JsonPropertyName("shinutiEasyDuet")] public int ShinutiEasyDuet { get; set; } = 0;
[JsonPropertyName("shinutiNormalDuet")] public int ShinutiNormalDuet { get; set; } = 0;
[JsonPropertyName("shinutiHardDuet")] public int ShinutiHardDuet { get; set; } = 0;
[JsonPropertyName("shinutiManiaDuet")] public int ShinutiManiaDuet { get; set; } = 0;
[JsonPropertyName("shinutiUraDuet")] public int ShinutiUraDuet { get; set; } = 0;
[JsonPropertyName("shinutiScoreEasy")] public int ShinutiScoreEasy { get; set; } = 0;
[JsonPropertyName("shinutiScoreNormal")] public int ShinutiScoreNormal { get; set; } = 0;
[JsonPropertyName("shinutiScoreHard")] public int ShinutiScoreHard { get; set; } = 0;
[JsonPropertyName("shinutiScoreMania")] public int ShinutiScoreMania { get; set; } = 0;
[JsonPropertyName("shinutiScoreUra")] public int ShinutiScoreUra { get; set; } = 0;
[JsonPropertyName("shinutiScoreEasyDuet")] public int ShinutiScoreEasyDuet { get; set; } = 0;
[JsonPropertyName("shinutiScoreNormalDuet")] public int ShinutiScoreNormalDuet { get; set; } = 0;
[JsonPropertyName("shinutiScoreHardDuet")] public int ShinutiScoreHardDuet { get; set; } = 0;
[JsonPropertyName("shinutiScoreManiaDuet")] public int ShinutiScoreManiaDuet { get; set; } = 0;
[JsonPropertyName("shinutiScoreUraDuet")] public int ShinutiScoreUraDuet { get; set; } = 0;
[JsonPropertyName("easyOnpuNum")] public int EasyOnpuNum { get; set; } = 0;
[JsonPropertyName("normalOnpuNum")] public int NormalOnpuNum { get; set; } = 0;
[JsonPropertyName("hardOnpuNum")] public int HardOnpuNum { get; set; } = 0;
[JsonPropertyName("maniaOnpuNum")] public int ManiaOnpuNum { get; set; } = 0;
[JsonPropertyName("uraOnpuNum")] public int UraOnpuNum { get; set; } = 0;
[JsonPropertyName("rendaTimeEasy")] public double RendaTimeEasy { get; set; } = 0;
[JsonPropertyName("rendaTimeNormal")] public double RendaTimeNormal { get; set; } = 0;
[JsonPropertyName("rendaTimeHard")] public double RendaTimeHard { get; set; } = 0;
[JsonPropertyName("rendaTimeMania")] public double RendaTimeMania { get; set; } = 0;
[JsonPropertyName("rendaTimeUra")] public double RendaTimeUra { get; set; } = 0;
[JsonPropertyName("fuusenTotalEasy")] public int FuusenTotalEasy { get; set; } = 0;
[JsonPropertyName("fuusenTotalNormal")] public int FuusenTotalNormal { get; set; } = 0;
[JsonPropertyName("fuusenTotalHard")] public int FuusenTotalHard { get; set; } = 0;
[JsonPropertyName("fuusenTotalMania")] public int FuusenTotalMania { get; set; } = 0;
[JsonPropertyName("fuusenTotalUra")] public int FuusenTotalUra { get; set; } = 0;
public override string ToString() => $"{UniqueId}. {Id}";
[DefaultValue(Genre.Pop)]
[JsonIgnore]
public Genre Genre
{
get => (Genre)GenreNo;
set => GenreNo = (int)value;
}
public MusicInfo Clone()
{
var props = GetType().GetProperties();
var clone = new MusicInfo();
foreach (var p in props)
p.SetValue(clone, p.GetValue(this));
return clone;
}
}
}