Move UMG importers to extensions.

This commit is contained in:
2023-03-17 17:58:45 +08:00
parent c1b7e9ab55
commit 7aa2577059
10 changed files with 97 additions and 27 deletions

View File

@@ -1,20 +0,0 @@
using Newtonsoft.Json;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace Cryville.Crtr.Browsing {
public class SkinResourceImporter : ResourceConverter {
static readonly string[] SUPPORTED_FORMATS = { ".umgs" };
public override string[] GetSupportedFormats() {
return SUPPORTED_FORMATS;
}
public override IEnumerable<Resource> ConvertFrom(FileInfo file) {
using (StreamReader reader = new StreamReader(file.FullName, Encoding.UTF8)) {
var data = JsonConvert.DeserializeObject<Skin>(reader.ReadToEnd());
return new Resource[] { new SkinResource(data.name, file) };
}
}
}
}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3fe9f91db8da80f459bcf70ff680644f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,9 +1,10 @@
using Newtonsoft.Json;
using Cryville.Crtr.Extension;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace Cryville.Crtr.Browsing {
namespace Cryville.Crtr.Extensions.Umg {
public class ChartResourceImporter : ResourceConverter {
static readonly string[] SUPPORTED_FORMATS = { ".umgc" };
public override string[] GetSupportedFormats() {
@@ -19,4 +20,13 @@ namespace Cryville.Crtr.Browsing {
}
}
}
public class ChartResource : FileResource {
public ChartResource(string name, FileInfo master) : base(name, master) {
using (var reader = new StreamReader(master.FullName)) {
var meta = JsonConvert.DeserializeObject<ChartMeta>(reader.ReadToEnd());
Attachments.Add(new FileInfo(Path.Combine(master.Directory.FullName, meta.data + ".json")));
if (meta.cover != null) Attachments.Add(new FileInfo(Path.Combine(master.Directory.FullName, meta.cover)));
}
}
}
}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 168366bb891392b42a1d0a6bfa068ff3
guid: bfcd614ec96fbe543aa2b2f1630aac73
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -0,0 +1,18 @@
using Cryville.Crtr.Extension;
using System.Collections.Generic;
namespace Cryville.Crtr.Extensions.Umg {
public class Extension : ExtensionInterface {
public override IEnumerable<ResourceConverter> GetResourceConverters() {
return new ResourceConverter[] {
new ChartResourceImporter(),
new RulesetResourceImporter(),
new SkinResourceImporter(),
};
}
public override IEnumerable<LocalResourceFinder> GetResourceFinders() {
return null;
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 323b670cbdea58644ac9ba20fc4c1a89
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,9 +1,10 @@
using Newtonsoft.Json;
using Cryville.Crtr.Extension;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace Cryville.Crtr.Browsing {
namespace Cryville.Crtr.Extensions.Umg {
public class RulesetResourceImporter : ResourceConverter {
static readonly string[] SUPPORTED_FORMATS = { ".umgr" };
public override string[] GetSupportedFormats() {
@@ -17,4 +18,12 @@ namespace Cryville.Crtr.Browsing {
}
}
}
public class RulesetResource : FileResource {
public RulesetResource(string name, FileInfo master) : base(name, master) {
using (var reader = new StreamReader(master.FullName)) {
var meta = JsonConvert.DeserializeObject<Ruleset>(reader.ReadToEnd());
Attachments.Add(new FileInfo(Path.Combine(master.Directory.FullName, meta.data + ".pdt")));
}
}
}
}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: f2c1531e76f19a647865f7ec335561cd
guid: 9e856b78a468f644191d62ab489ae089
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -0,0 +1,34 @@
using Cryville.Crtr.Extension;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace Cryville.Crtr.Extensions.Umg {
public class SkinResourceImporter : ResourceConverter {
static readonly string[] SUPPORTED_FORMATS = { ".umgs" };
public override string[] GetSupportedFormats() {
return SUPPORTED_FORMATS;
}
public override IEnumerable<Resource> ConvertFrom(FileInfo file) {
using (StreamReader reader = new StreamReader(file.FullName, Encoding.UTF8)) {
var data = JsonConvert.DeserializeObject<Skin>(reader.ReadToEnd());
return new Resource[] { new SkinResource(data.name, file) };
}
}
}
public class SkinResource : FileResource {
public string RulesetName { get; private set; }
public SkinResource(string name, FileInfo master) : base(name, master) {
using (var reader = new StreamReader(master.FullName)) {
var meta = JsonConvert.DeserializeObject<Skin>(reader.ReadToEnd());
RulesetName = meta.ruleset;
Attachments.Add(new FileInfo(Path.Combine(master.Directory.FullName, meta.data + ".pdt")));
foreach (var frame in meta.frames) {
Attachments.Add(new FileInfo(Path.Combine(master.Directory.FullName, frame)));
}
}
}
}
}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 9904b4c21758c5046afc341fe2fa8845
guid: 2afd6abf146c2ee45ab749477b8c7fda
MonoImporter:
externalObjects: {}
serializedVersion: 2