(FormatCatalog.DataDirectory): new property.

This commit is contained in:
morkt 2016-09-07 20:28:23 +04:00
parent 7f272a6c16
commit 7c5b26933a
3 changed files with 8 additions and 4 deletions

View File

@ -122,7 +122,7 @@ namespace GameRes.Formats.Neko
static string[] KnownFileNames { get { return s_known_file_names.Value; } } static string[] KnownFileNames { get { return s_known_file_names.Value; } }
static string[] s_known_dir_names = { static string[] s_known_dir_names = {
"image/actor", "image/back", "image/mask", "image/visual", "image/actor", "image/back", "image/mask", "image/visual", "image/actor/big",
"sound/bgm", "sound/env", "sound/se", "voice", "script", "system", "count", "sound/bgm", "sound/env", "sound/se", "voice", "script", "system", "count",
}; };
@ -177,7 +177,7 @@ namespace GameRes.Formats.Neko
{ {
try try
{ {
var dir = Path.GetDirectoryName (System.Reflection.Assembly.GetExecutingAssembly().Location); var dir = FormatCatalog.Instance.DataDirectory;
var lst_file = Path.Combine (dir, "nekopack.lst"); var lst_file = Path.Combine (dir, "nekopack.lst");
if (!File.Exists (lst_file)) if (!File.Exists (lst_file))
return new string[0]; return new string[0];

View File

@ -219,7 +219,7 @@ namespace GameRes.Formats.NonColor
{ {
if (null != LastAccessedScheme && LastAccessedScheme.Item1 == scheme.Hash) if (null != LastAccessedScheme && LastAccessedScheme.Item1 == scheme.Hash)
return LastAccessedScheme.Item2; return LastAccessedScheme.Item2;
var dir = Path.GetDirectoryName (System.Reflection.Assembly.GetExecutingAssembly().Location); var dir = FormatCatalog.Instance.DataDirectory;
var lst_file = Path.Combine (dir, PersistentFileMapName); var lst_file = Path.Combine (dir, PersistentFileMapName);
var idx_file = Path.ChangeExtension (lst_file, ".idx"); var idx_file = Path.ChangeExtension (lst_file, ".idx");
using (var idx_stream = File.OpenRead (idx_file)) using (var idx_stream = File.OpenRead (idx_file))

View File

@ -70,11 +70,15 @@ namespace GameRes
public int CurrentSchemeVersion { get; private set; } public int CurrentSchemeVersion { get; private set; }
public string SchemeID { get { return "GARbroDB"; } } public string SchemeID { get { return "GARbroDB"; } }
public string AssemblyLocation { get { return m_gameres_dir.Value; } }
public string DataDirectory { get { return AssemblyLocation; } }
public Exception LastError { get; set; } public Exception LastError { get; set; }
public event ParametersRequestEventHandler ParametersRequest; public event ParametersRequestEventHandler ParametersRequest;
private Lazy<string> m_gameres_dir = new Lazy<string> (() => Path.GetDirectoryName (System.Reflection.Assembly.GetExecutingAssembly().Location));
private FormatCatalog () private FormatCatalog ()
{ {
//An aggregate catalog that combines multiple catalogs //An aggregate catalog that combines multiple catalogs
@ -82,7 +86,7 @@ namespace GameRes
//Adds all the parts found in the same assembly as the Program class //Adds all the parts found in the same assembly as the Program class
catalog.Catalogs.Add (new AssemblyCatalog (typeof(FormatCatalog).Assembly)); catalog.Catalogs.Add (new AssemblyCatalog (typeof(FormatCatalog).Assembly));
//Adds parts matching pattern found in the directory of the assembly //Adds parts matching pattern found in the directory of the assembly
catalog.Catalogs.Add (new DirectoryCatalog (Path.GetDirectoryName (System.Reflection.Assembly.GetExecutingAssembly().Location), "Arc*.dll")); catalog.Catalogs.Add (new DirectoryCatalog (AssemblyLocation, "Arc*.dll"));
//Create the CompositionContainer with the parts in the catalog //Create the CompositionContainer with the parts in the catalog
using (var container = new CompositionContainer (catalog)) using (var container = new CompositionContainer (catalog))