Files
Kayori 755c047693 Platform, plugin & account UX improvements
- Refactor handler dispatch to use a parsed GameModel instead of raw
  model strings (Handler.cs, HandlerService.cs, new GameModel.cs)
- Add a Unity asset-extraction subsystem (Abstractions/Extractors/Unity)
- Add WriteEventLogHandler, XrpcDouble serialization type
- Rename EaCoin*Handler -> *EaCoinHandler for naming consistency
- Add PIN/username update and forgot/reset password flows, with a
  console-logging IEmailSender until real email is wired up
- Add a settings page and a theming pass (theme tokens, tailwind config)
- Add plugin nav/route/UI-manifest frontend types
2026-09-06 15:12:50 +02:00

19 lines
964 B
C#

using System;
using System.IO;
namespace Abstractions.Extractors.Unity.Helpers;
/// <summary>Shared default-location lookup for the bundled classdata.tpk, used by both BundleLoader
/// and BundleDependencyIndex (each owns its own AssetsManager, so each needs to load it).</summary>
internal static class ClassDataTpk
{
// Resolved next to UnityBundleLib's own assembly, not AppContext.BaseDirectory - a consumer
// loaded into its own AssemblyLoadContext (e.g. a Medusa plugin loaded from a "plugins/<name>"
// folder) has an AppContext.BaseDirectory pointing at the *host* process's directory, not the
// plugin's, even though the NuGet package's contentFiles copy classdata.tpk next to this DLL.
public static string ResolvePath(string? overridePath) =>
overridePath ?? Path.Combine(
Path.GetDirectoryName(typeof(ClassDataTpk).Assembly.Location) ?? AppContext.BaseDirectory,
"Resources", "classdata.tpk");
}