87 lines
5.2 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|