#pragma once #include // Пути к данным лаунчера. Собственная папка galeonLauncher лежит рядом со // стандартной .minecraft, а не в системном каталоге приложения. namespace LauncherPaths { // Родительская папка, в которой лежит .minecraft (и наша galeonLauncher). QString containerDir(); // /galeonLauncher — корень данных лаунчера. QString rootDir(); // Стандартная папка игры. QString defaultMinecraftDir(); QString settingsFile(); QString profilesFile(); // /customBuilds.json — пользовательские сборки. QString customBuildsFile(); // /versions.json — как сборки назывались до переименования. Читается // один раз при миграции и больше ни для чего не нужен. QString legacyCustomBuildsFile(); // /builds — архивы содержимого .minecraft по одному на сборку. QString buildStorageDir(); // /builds/ — папка одной сборки: её архив и, у сезонных, скачанный // пак с описанием установленной ревизии. QString buildDir(int buildId); // /builds//season.json — какая ревизия сезонной сборки установлена и // какие файлы она принесла. Список нужен, чтобы при обновлении убрать те, что // из сборки ушли. QString seasonalStateFile(int buildId); // Сюда качается authlib-injector. QString runtimeDir(); // /java — сборки Java, скачанные лаунчером. Каждая в своей подпапке, // имя подпапки — идентификатор сборки из каталога. QString javaDir(); // Слепок каталога доступных сборок Java с отметкой времени. QString javaCatalogFile(); // Сюда качаются архивы Temurin до распаковки. QString javaDownloadDir(); // /cache — данные, которые можно удалить без потерь. QString cacheDir(); // Слепок манифеста версий Mojang с отметкой времени. QString versionManifestFile(); // Слепок каталога сезонных сборок с отметкой времени. QString seasonalCatalogFile(); // Слепок списка версий одного модлоадера: loaderKey — forge|fabric|neoforge|quilt. QString loaderCacheFile(const QString &loaderKey); // Сюда качаются installer.jar модлоадеров. QString loaderDownloadDir(); // Создаёт папку лаунчера, если её нет. Вызывается при каждом запуске и перед // каждой записью. false и текст в error, если папки нет или в неё не пишется. bool ensureRootExists(QString *error = nullptr); } // namespace LauncherPaths