diff --git a/Assets/Cryville/Crtr/Browsing/LegacyResourceManager.cs b/Assets/Cryville/Crtr/Browsing/LegacyResourceManager.cs index 7f8786d..eff0c19 100644 --- a/Assets/Cryville/Crtr/Browsing/LegacyResourceManager.cs +++ b/Assets/Cryville/Crtr/Browsing/LegacyResourceManager.cs @@ -59,24 +59,27 @@ namespace Cryville.Crtr.Browsing { public ResourceItemMeta GetItemMeta(int id) { var item = items[id]; - AsyncDelivery cover = null; - var coverFile = item.GetFiles("cover.*"); - if (coverFile.Length > 0) { - cover = new AsyncDelivery(); - var task = new LoadTextureTask(Game.FileProtocolPrefix + coverFile[0].FullName, cover.Deliver); - cover.CancelSource = task.Cancel; - Game.NetworkTaskWorker.SubmitNetworkTask(task); - } + var meta = new ChartMeta(); string name = item.Name; string desc = "(Unknown)"; var metaFile = new FileInfo(item.FullName + "/meta.json"); if (metaFile.Exists) { using (var reader = new StreamReader(metaFile.FullName)) { - var meta = JsonConvert.DeserializeObject(reader.ReadToEnd()); + meta = JsonConvert.DeserializeObject(reader.ReadToEnd()); name = meta.song.name; desc = meta.chart.name; } } + AsyncDelivery cover = null; + if (meta.cover != null && meta.cover != "") { + var coverFile = item.GetFiles(meta.cover); + if (coverFile.Length > 0) { + cover = new AsyncDelivery(); + var task = new LoadTextureTask(Game.FileProtocolPrefix + coverFile[0].FullName, cover.Deliver); + cover.CancelSource = task.Cancel; + Game.NetworkTaskWorker.SubmitNetworkTask(task); + } + } return new ResourceItemMeta { IsDirectory = false, Icon = cover, @@ -87,21 +90,23 @@ namespace Cryville.Crtr.Browsing { public ChartDetail GetItemDetail(int id) { var item = items[id]; - AsyncDelivery cover = null; - var coverFile = item.GetFiles("cover.*"); - if (coverFile.Length > 0) { - cover = new AsyncDelivery(); - var task = new LoadTextureTask(Game.FileProtocolPrefix + coverFile[0].FullName, cover.Deliver); - cover.CancelSource = task.Cancel; - Game.NetworkTaskWorker.SubmitNetworkTask(task); - } - ChartMeta meta = new ChartMeta(); + var meta = new ChartMeta(); var metaFile = new FileInfo(item.FullName + "/meta.json"); if (metaFile.Exists) { using (var reader = new StreamReader(metaFile.FullName)) { meta = JsonConvert.DeserializeObject(reader.ReadToEnd()); } } + AsyncDelivery cover = null; + if (meta.cover != null && meta.cover != "") { + var coverFile = item.GetFiles(meta.cover); + if (coverFile.Length > 0) { + cover = new AsyncDelivery(); + var task = new LoadTextureTask(Game.FileProtocolPrefix + coverFile[0].FullName, cover.Deliver); + cover.CancelSource = task.Cancel; + Game.NetworkTaskWorker.SubmitNetworkTask(task); + } + } return new ChartDetail { Cover = cover, Meta = meta, @@ -143,7 +148,7 @@ namespace Cryville.Crtr.Browsing { var tres = (CoverResource)res; var dir = new DirectoryInfo(_rootPath + "/charts/" + res.Name); if (!dir.Exists) dir.Create(); - var dest = new FileInfo(_rootPath + "/charts/" + res.Name + "/cover" + tres.Source.Extension); + var dest = new FileInfo(_rootPath + "/charts/" + res.Name + "/" + tres.Source.Name); if (!dest.Exists) tres.Source.CopyTo(dest.FullName); } diff --git a/Assets/Cryville/Crtr/Browsing/ResourceBrowserMaster.cs b/Assets/Cryville/Crtr/Browsing/ResourceBrowserMaster.cs index 2c73aad..7eeec19 100644 --- a/Assets/Cryville/Crtr/Browsing/ResourceBrowserMaster.cs +++ b/Assets/Cryville/Crtr/Browsing/ResourceBrowserMaster.cs @@ -108,6 +108,7 @@ namespace Cryville.Crtr.Browsing { } public string ruleset { get; set; } public int note_count { get; set; } + public string cover { get; set; } } #pragma warning restore IDE1006 } diff --git a/Assets/Cryville/Crtr/Extensions/Malody/MalodyChartConverter.cs b/Assets/Cryville/Crtr/Extensions/Malody/MalodyChartConverter.cs index 1a9a904..1ccae69 100644 --- a/Assets/Cryville/Crtr/Extensions/Malody/MalodyChartConverter.cs +++ b/Assets/Cryville/Crtr/Extensions/Malody/MalodyChartConverter.cs @@ -148,9 +148,11 @@ namespace Cryville.Crtr.Extensions.Malody { }; meta.note_count = group.notes.Count; string chartName = string.Format("{0} - {1}", meta.song.name, meta.chart.name); - result.Add(new ChartResource(chartName, chart, meta)); - if (src.meta.background != null) + if (src.meta.background != null) { result.Add(new CoverResource(chartName, new FileInfo(file.DirectoryName + "/" + src.meta.background))); + meta.cover = src.meta.background; + } + result.Add(new ChartResource(chartName, chart, meta)); return result; }