diff options
Diffstat (limited to 'api/logic/modplatform/atlauncher/ATLPackInstallTask.h')
-rw-r--r-- | api/logic/modplatform/atlauncher/ATLPackInstallTask.h | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/api/logic/modplatform/atlauncher/ATLPackInstallTask.h b/api/logic/modplatform/atlauncher/ATLPackInstallTask.h index 12e6bcf5..78544bab 100644 --- a/api/logic/modplatform/atlauncher/ATLPackInstallTask.h +++ b/api/logic/modplatform/atlauncher/ATLPackInstallTask.h @@ -11,6 +11,8 @@ #include "minecraft/PackProfile.h" #include "meta/Version.h" +#include <nonstd/optional> + namespace ATLauncher { class MULTIMC_LOGIC_EXPORT PackInstallTask : public InstanceTask @@ -30,6 +32,9 @@ private slots: void onDownloadSucceeded(); void onDownloadFailed(QString reason); + void onModsDownloaded(); + void onModsExtracted(); + private: QString getDirForModType(ModType type, QString raw); QString getVersionForLoader(QString uid); @@ -40,9 +45,12 @@ private: void installConfigs(); void extractConfigs(); - void installMods(); - void extractMods(); - void decompMods(); + void downloadMods(); + bool extractMods( + const QMap<QString, VersionMod> &toExtract, + const QMap<QString, VersionMod> &toDecomp, + const QMap<QString, QString> &toCopy + ); void install(); private: @@ -55,14 +63,18 @@ private: QMap<QString, VersionMod> modsToExtract; QMap<QString, VersionMod> modsToDecomp; + QMap<QString, QString> modsToCopy; QString archivePath; QStringList jarmods; Meta::VersionPtr minecraftVersion; QMap<QString, Meta::VersionPtr> componentsToInstall; - QFuture<QStringList> m_extractFuture; - QFutureWatcher<QStringList> m_extractFutureWatcher; + QFuture<nonstd::optional<QStringList>> m_extractFuture; + QFutureWatcher<nonstd::optional<QStringList>> m_extractFutureWatcher; + + QFuture<bool> m_modExtractFuture; + QFutureWatcher<bool> m_modExtractFutureWatcher; QFuture<bool> m_decompFuture; QFutureWatcher<bool> m_decompFutureWatcher; |