aboutsummaryrefslogtreecommitdiff
path: root/launcher/modplatform/flame/FlameInstanceCreationTask.h
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-09-26 08:25:12 -0300
committerGitHub <noreply@github.com>2022-09-26 08:25:12 -0300
commit370c3aa5985698351e706e61c660a3a566a5f09b (patch)
tree5bd62ceec118396d676cf3799edafdb806e4375d /launcher/modplatform/flame/FlameInstanceCreationTask.h
parent58a5331f7bafb149c18f560a0363daab65521262 (diff)
parentdd6f670dec7dfd1a9ad6f4595ad5447ac735c737 (diff)
downloadPrismLauncher-370c3aa5985698351e706e61c660a3a566a5f09b.tar.gz
PrismLauncher-370c3aa5985698351e706e61c660a3a566a5f09b.tar.bz2
PrismLauncher-370c3aa5985698351e706e61c660a3a566a5f09b.zip
Merge pull request #894 from flowln/update_from_external_source
epic PR
Diffstat (limited to 'launcher/modplatform/flame/FlameInstanceCreationTask.h')
-rw-r--r--launcher/modplatform/flame/FlameInstanceCreationTask.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/launcher/modplatform/flame/FlameInstanceCreationTask.h b/launcher/modplatform/flame/FlameInstanceCreationTask.h
new file mode 100644
index 00000000..ded0e2ce
--- /dev/null
+++ b/launcher/modplatform/flame/FlameInstanceCreationTask.h
@@ -0,0 +1,44 @@
+#pragma once
+
+#include "InstanceCreationTask.h"
+
+#include <optional>
+
+#include "minecraft/MinecraftInstance.h"
+
+#include "modplatform/flame/FileResolvingTask.h"
+
+#include "net/NetJob.h"
+
+class FlameCreationTask final : public InstanceCreationTask {
+ Q_OBJECT
+
+ public:
+ FlameCreationTask(const QString& staging_path, SettingsObjectPtr global_settings, QWidget* parent)
+ : InstanceCreationTask(), m_parent(parent)
+ {
+ setStagingPath(staging_path);
+ setParentSettings(global_settings);
+ }
+
+ bool abort() override;
+
+ bool updateInstance() override;
+ bool createInstance() override;
+
+ private slots:
+ void idResolverSucceeded(QEventLoop&);
+ void setupDownloadJob(QEventLoop&);
+
+ private:
+ QWidget* m_parent = nullptr;
+
+ shared_qobject_ptr<Flame::FileResolvingTask> m_mod_id_resolver;
+ Flame::Manifest m_pack;
+
+ // Handle to allow aborting
+ NetJob* m_process_update_file_info_job = nullptr;
+ NetJob::Ptr m_files_job = nullptr;
+
+ std::optional<InstancePtr> m_instance;
+};