using MrGameEng.Mods;

namespace LittleSim.App;

/// <summary>
/// Расположение пользовательских данных игры рядом с папкой <c>Mods</c> (где живёт и
/// <c>Cache/</c>): файл настроек и каталог сохранений. Корень ищется один раз — поднятием
/// вверх по дереву от исполняемого файла (как делает загрузка модов).
/// </summary>
public static class GamePaths
{
    private static string? _root;

    /// <summary>Корневая папка данных (родитель папки <c>Mods</c>).</summary>
    public static string Root =>
        _root ??= Path.GetDirectoryName(
            ModLoader.FindModsRoot(AppContext.BaseDirectory)
                ?? throw new DirectoryNotFoundException("Папка Mods не найдена.")
        )!;

    /// <summary>Путь к файлу настроек игры.</summary>
    public static string SettingsFile => Path.Combine(Root, "settings.json");

    /// <summary>Каталог файлов сохранений.</summary>
    public static string SavesDirectory => Path.Combine(Root, "Saves");
}
