Pull up ExtensionInterface.
This commit is contained in:
9
Assets/Cryville/Crtr/Browsing/ExtensionInterface.cs
Normal file
9
Assets/Cryville/Crtr/Browsing/ExtensionInterface.cs
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Cryville.Crtr.Browsing {
|
||||||
|
public abstract class ExtensionInterface {
|
||||||
|
public abstract IEnumerable<ResourceConverter> GetResourceConverters();
|
||||||
|
public abstract IEnumerable<LocalResourceFinder> GetResourceFinders();
|
||||||
|
}
|
||||||
|
}
|
11
Assets/Cryville/Crtr/Browsing/ExtensionInterface.cs.meta
Normal file
11
Assets/Cryville/Crtr/Browsing/ExtensionInterface.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4ffe72fef6ebb9e4da3571b4117f0d6d
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@@ -25,13 +25,26 @@ namespace Cryville.Crtr.Browsing {
|
|||||||
static LegacyResourceManager() {
|
static LegacyResourceManager() {
|
||||||
foreach (var asm in AppDomain.CurrentDomain.GetAssemblies()) {
|
foreach (var asm in AppDomain.CurrentDomain.GetAssemblies()) {
|
||||||
foreach (var type in asm.GetTypes()) {
|
foreach (var type in asm.GetTypes()) {
|
||||||
if (type.IsSubclassOf(typeof(ResourceConverter))) {
|
if (!type.IsSubclassOf(typeof(ExtensionInterface))) continue;
|
||||||
var converter = (ResourceConverter)Activator.CreateInstance(type);
|
var ext = (ExtensionInterface)Activator.CreateInstance(type);
|
||||||
foreach (var f in converter.GetSupportedFormats()) {
|
try {
|
||||||
|
var cs = ext.GetResourceConverters();
|
||||||
|
if (cs != null) {
|
||||||
|
foreach (var c in cs) {
|
||||||
|
var fs = c.GetSupportedFormats();
|
||||||
|
if (fs == null) continue;
|
||||||
|
foreach (var f in fs) {
|
||||||
|
if (f == null) continue;
|
||||||
if (!converters.ContainsKey(f))
|
if (!converters.ContainsKey(f))
|
||||||
converters.Add(f, new List<ResourceConverter> { converter });
|
converters.Add(f, new List<ResourceConverter> { c });
|
||||||
else converters[f].Add(converter);
|
else converters[f].Add(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Logger.Log("main", 1, "Resource", "Loaded extension {0}", ReflectionHelper.GetNamespaceQualifiedName(type));
|
||||||
|
}
|
||||||
|
catch (Exception ex) {
|
||||||
|
Logger.Log("main", 4, "Resource", "Failed to initialize extension {0}: {1}", ReflectionHelper.GetNamespaceQualifiedName(type), ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
27
Assets/Cryville/Crtr/Extensions/Extensions.cs
Normal file
27
Assets/Cryville/Crtr/Extensions/Extensions.cs
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
using Cryville.Crtr.Browsing;
|
||||||
|
using Cryville.Crtr.Extensions.Bestdori;
|
||||||
|
using Cryville.Crtr.Extensions.Malody;
|
||||||
|
using Cryville.Crtr.Extensions.osu;
|
||||||
|
using Cryville.Crtr.Extensions.Quaver;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Cryville.Crtr.Extensions {
|
||||||
|
public class Extensions : ExtensionInterface {
|
||||||
|
public override IEnumerable<ResourceConverter> GetResourceConverters() {
|
||||||
|
return new ResourceConverter[] {
|
||||||
|
new BestdoriChartConverter(),
|
||||||
|
new MalodyChartConverter(),
|
||||||
|
new osuChartConverter(),
|
||||||
|
new QuaverChartConverter(),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public override IEnumerable<LocalResourceFinder> GetResourceFinders() {
|
||||||
|
return new LocalResourceFinder[] {
|
||||||
|
new MalodyChartFinder(),
|
||||||
|
new osuChartFinder(),
|
||||||
|
new QuaverChartFinder(),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
11
Assets/Cryville/Crtr/Extensions/Extensions.cs.meta
Normal file
11
Assets/Cryville/Crtr/Extensions/Extensions.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 23377bf2926d93a4b8e3f3ab6040c7f2
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Reference in New Issue
Block a user