diff options
Diffstat (limited to 'launcher/minecraft/mod/tasks/LocalResourcePackParseTask.h')
-rw-r--r-- | launcher/minecraft/mod/tasks/LocalResourcePackParseTask.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/launcher/minecraft/mod/tasks/LocalResourcePackParseTask.h b/launcher/minecraft/mod/tasks/LocalResourcePackParseTask.h new file mode 100644 index 00000000..7660d233 --- /dev/null +++ b/launcher/minecraft/mod/tasks/LocalResourcePackParseTask.h @@ -0,0 +1,34 @@ +#pragma once + +#include <QDebug> +#include <QObject> + +#include "minecraft/mod/ResourcePack.h" + +#include "tasks/Task.h" + +class LocalResourcePackParseTask : public Task { + Q_OBJECT + public: + LocalResourcePackParseTask(int token, ResourcePack& rp); + + [[nodiscard]] bool canAbort() const override { return true; } + bool abort() override; + + void executeTask() override; + + [[nodiscard]] int token() const { return m_token; } + + private: + void processMCMeta(QByteArray&& raw_data); + + void processAsFolder(); + void processAsZip(); + + private: + int m_token; + + ResourcePack& m_resource_pack; + + bool m_aborted = false; +}; |