Update Cryville.Crtr.Extension.

This commit is contained in:
2023-05-17 20:43:04 +08:00
parent 8d606524fc
commit 5b04426cd3
5 changed files with 16 additions and 16 deletions

View File

@@ -1,4 +1,4 @@
using Cryville.Common; using Cryville.Common;
using Cryville.Common.Unity; using Cryville.Common.Unity;
using Cryville.Crtr.Extension; using Cryville.Crtr.Extension;
using Cryville.Crtr.Extensions.Umg; using Cryville.Crtr.Extensions.Umg;
@@ -118,9 +118,12 @@ namespace Cryville.Crtr.Browsing {
IEnumerable<ResourceConverter> converters; IEnumerable<ResourceConverter> converters;
if (!ExtensionManager.TryGetConverters(file.Extension, out converters)) return false; if (!ExtensionManager.TryGetConverters(file.Extension, out converters)) return false;
foreach (var converter in converters) { foreach (var converter in converters) {
IEnumerable<Resource> resources = null; var resources = new List<Resource>();
var ses = new ConversionSession {
OnResourceAdd = res => resources.Add(res)
};
try { try {
resources = converter.ConvertFrom(file); converter.Convert(file, ses);
} }
catch (Exception ex) { catch (Exception ex) {
LogAndPopupExtra(4, ex, "Failed to import resource: {0}", ex.Message); LogAndPopupExtra(4, ex, "Failed to import resource: {0}", ex.Message);
@@ -271,4 +274,4 @@ namespace Cryville.Crtr.Browsing {
}).ToList(); }).ToList();
} }
} }
} }

View File

@@ -1,6 +1,5 @@
using Cryville.Crtr.Extension; using Cryville.Crtr.Extension;
using Newtonsoft.Json; using Newtonsoft.Json;
using System.Collections.Generic;
using System.IO; using System.IO;
using System.Text; using System.Text;
@@ -11,12 +10,12 @@ namespace Cryville.Crtr.Extensions.Umg {
return SUPPORTED_FORMATS; return SUPPORTED_FORMATS;
} }
public override IEnumerable<Resource> ConvertFrom(FileInfo file) { public override void Convert(FileInfo file, ConversionSession ses) {
var meta = Path.Combine(file.Directory.FullName, "meta.json"); var meta = Path.Combine(file.Directory.FullName, "meta.json");
if (!File.Exists(meta)) throw new FileNotFoundException("Meta file for the chart not found"); if (!File.Exists(meta)) throw new FileNotFoundException("Meta file for the chart not found");
using (StreamReader reader = new StreamReader(meta, Encoding.UTF8)) { using (StreamReader reader = new StreamReader(meta, Encoding.UTF8)) {
var data = JsonConvert.DeserializeObject<ChartMeta>(reader.ReadToEnd()); var data = JsonConvert.DeserializeObject<ChartMeta>(reader.ReadToEnd());
return new Resource[] { new ChartResource(data.name, file) }; ses.AddResource(new ChartResource(data.name, file));
} }
} }
} }

View File

@@ -1,6 +1,5 @@
using Cryville.Crtr.Extension; using Cryville.Crtr.Extension;
using Newtonsoft.Json; using Newtonsoft.Json;
using System.Collections.Generic;
using System.IO; using System.IO;
using System.Text; using System.Text;
@@ -11,10 +10,10 @@ namespace Cryville.Crtr.Extensions.Umg {
return SUPPORTED_FORMATS; return SUPPORTED_FORMATS;
} }
public override IEnumerable<Resource> ConvertFrom(FileInfo file) { public override void Convert(FileInfo file, ConversionSession ses) {
using (StreamReader reader = new StreamReader(file.FullName, Encoding.UTF8)) { using (StreamReader reader = new StreamReader(file.FullName, Encoding.UTF8)) {
var data = JsonConvert.DeserializeObject<Ruleset>(reader.ReadToEnd()); var data = JsonConvert.DeserializeObject<Ruleset>(reader.ReadToEnd());
return new Resource[] { new RulesetResource(data.name, file) }; ses.AddResource(new RulesetResource(data.name, file));
} }
} }
} }

View File

@@ -1,6 +1,5 @@
using Cryville.Crtr.Extension; using Cryville.Crtr.Extension;
using Newtonsoft.Json; using Newtonsoft.Json;
using System.Collections.Generic;
using System.IO; using System.IO;
using System.Text; using System.Text;
@@ -11,10 +10,10 @@ namespace Cryville.Crtr.Extensions.Umg {
return SUPPORTED_FORMATS; return SUPPORTED_FORMATS;
} }
public override IEnumerable<Resource> ConvertFrom(FileInfo file) { public override void Convert(FileInfo file, ConversionSession ses) {
using (StreamReader reader = new StreamReader(file.FullName, Encoding.UTF8)) { using (StreamReader reader = new StreamReader(file.FullName, Encoding.UTF8)) {
var data = JsonConvert.DeserializeObject<Skin>(reader.ReadToEnd()); var data = JsonConvert.DeserializeObject<Skin>(reader.ReadToEnd());
return new Resource[] { new SkinResource(data.name, file) }; ses.AddResource(new SkinResource(data.name, file));
} }
} }
} }