Aetheria/Assets/Scripts/Gameplay/LegacyCatalogBoundary.cs
2026-06-13 07:41:21 +01:00

28 lines
1 KiB
C#

using System.IO;
public static class LegacyCatalogBoundary
{
private static LegacyCatalogCache _catalogCache;
public static string GetStateFilePath(DirectoryInfo gameDataDirectory)
{
return Path.Combine(gameDataDirectory.FullName, "aetheria-world.cc");
}
public static string GetLegacyCatalogPath(DirectoryInfo gameDataDirectory)
{
return Path.Combine(gameDataDirectory.FullName, "AetherDB.msgpack");
}
public static ILegacyCatalogReader GetCatalog(DirectoryInfo gameDataDirectory)
{
if (_catalogCache != null) return _catalogCache;
_catalogCache = new LegacyCatalogCache();
_catalogCache.AddBackingStore(new SingleFileMessagePackBackingStore(GetLegacyCatalogPath(gameDataDirectory)));
_catalogCache.AddBackingStore(new MultiFileMessagePackBackingStore(gameDataDirectory.FullName), typeof(NameFile));
_catalogCache.PullAllBackingStores();
DatabaseLinkBase.BindLegacyCatalog(_catalogCache);
return _catalogCache;
}
}