diff options
author | flow <flowlnlnln@gmail.com> | 2022-09-26 08:25:12 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-26 08:25:12 -0300 |
commit | 370c3aa5985698351e706e61c660a3a566a5f09b (patch) | |
tree | 5bd62ceec118396d676cf3799edafdb806e4375d /launcher/modplatform/flame/FlameInstanceCreationTask.h | |
parent | 58a5331f7bafb149c18f560a0363daab65521262 (diff) | |
parent | dd6f670dec7dfd1a9ad6f4595ad5447ac735c737 (diff) | |
download | PrismLauncher-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.h | 44 |
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; +}; |