Uses original cover file name on import.

This commit is contained in:
2022-11-16 11:42:51 +08:00
parent d0d981b790
commit a19057f869
3 changed files with 29 additions and 21 deletions

View File

@@ -59,24 +59,27 @@ namespace Cryville.Crtr.Browsing {
public ResourceItemMeta GetItemMeta(int id) { public ResourceItemMeta GetItemMeta(int id) {
var item = items[id]; var item = items[id];
AsyncDelivery<Texture2D> cover = null; var meta = new ChartMeta();
var coverFile = item.GetFiles("cover.*");
if (coverFile.Length > 0) {
cover = new AsyncDelivery<Texture2D>();
var task = new LoadTextureTask(Game.FileProtocolPrefix + coverFile[0].FullName, cover.Deliver);
cover.CancelSource = task.Cancel;
Game.NetworkTaskWorker.SubmitNetworkTask(task);
}
string name = item.Name; string name = item.Name;
string desc = "(Unknown)"; string desc = "(Unknown)";
var metaFile = new FileInfo(item.FullName + "/meta.json"); var metaFile = new FileInfo(item.FullName + "/meta.json");
if (metaFile.Exists) { if (metaFile.Exists) {
using (var reader = new StreamReader(metaFile.FullName)) { using (var reader = new StreamReader(metaFile.FullName)) {
var meta = JsonConvert.DeserializeObject<ChartMeta>(reader.ReadToEnd()); meta = JsonConvert.DeserializeObject<ChartMeta>(reader.ReadToEnd());
name = meta.song.name; name = meta.song.name;
desc = meta.chart.name; desc = meta.chart.name;
} }
} }
AsyncDelivery<Texture2D> cover = null;
if (meta.cover != null && meta.cover != "") {
var coverFile = item.GetFiles(meta.cover);
if (coverFile.Length > 0) {
cover = new AsyncDelivery<Texture2D>();
var task = new LoadTextureTask(Game.FileProtocolPrefix + coverFile[0].FullName, cover.Deliver);
cover.CancelSource = task.Cancel;
Game.NetworkTaskWorker.SubmitNetworkTask(task);
}
}
return new ResourceItemMeta { return new ResourceItemMeta {
IsDirectory = false, IsDirectory = false,
Icon = cover, Icon = cover,
@@ -87,21 +90,23 @@ namespace Cryville.Crtr.Browsing {
public ChartDetail GetItemDetail(int id) { public ChartDetail GetItemDetail(int id) {
var item = items[id]; var item = items[id];
AsyncDelivery<Texture2D> cover = null; var meta = new ChartMeta();
var coverFile = item.GetFiles("cover.*");
if (coverFile.Length > 0) {
cover = new AsyncDelivery<Texture2D>();
var task = new LoadTextureTask(Game.FileProtocolPrefix + coverFile[0].FullName, cover.Deliver);
cover.CancelSource = task.Cancel;
Game.NetworkTaskWorker.SubmitNetworkTask(task);
}
ChartMeta meta = new ChartMeta();
var metaFile = new FileInfo(item.FullName + "/meta.json"); var metaFile = new FileInfo(item.FullName + "/meta.json");
if (metaFile.Exists) { if (metaFile.Exists) {
using (var reader = new StreamReader(metaFile.FullName)) { using (var reader = new StreamReader(metaFile.FullName)) {
meta = JsonConvert.DeserializeObject<ChartMeta>(reader.ReadToEnd()); meta = JsonConvert.DeserializeObject<ChartMeta>(reader.ReadToEnd());
} }
} }
AsyncDelivery<Texture2D> cover = null;
if (meta.cover != null && meta.cover != "") {
var coverFile = item.GetFiles(meta.cover);
if (coverFile.Length > 0) {
cover = new AsyncDelivery<Texture2D>();
var task = new LoadTextureTask(Game.FileProtocolPrefix + coverFile[0].FullName, cover.Deliver);
cover.CancelSource = task.Cancel;
Game.NetworkTaskWorker.SubmitNetworkTask(task);
}
}
return new ChartDetail { return new ChartDetail {
Cover = cover, Cover = cover,
Meta = meta, Meta = meta,
@@ -143,7 +148,7 @@ namespace Cryville.Crtr.Browsing {
var tres = (CoverResource)res; var tres = (CoverResource)res;
var dir = new DirectoryInfo(_rootPath + "/charts/" + res.Name); var dir = new DirectoryInfo(_rootPath + "/charts/" + res.Name);
if (!dir.Exists) dir.Create(); 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); if (!dest.Exists) tres.Source.CopyTo(dest.FullName);
} }

View File

@@ -108,6 +108,7 @@ namespace Cryville.Crtr.Browsing {
} }
public string ruleset { get; set; } public string ruleset { get; set; }
public int note_count { get; set; } public int note_count { get; set; }
public string cover { get; set; }
} }
#pragma warning restore IDE1006 #pragma warning restore IDE1006
} }

View File

@@ -148,9 +148,11 @@ namespace Cryville.Crtr.Extensions.Malody {
}; };
meta.note_count = group.notes.Count; meta.note_count = group.notes.Count;
string chartName = string.Format("{0} - {1}", meta.song.name, meta.chart.name); 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))); 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; return result;
} }