aboutsummaryrefslogtreecommitdiff
path: root/launcher/minecraft/mod/tasks/LocalResourcePackParseTask.h
blob: 7660d233c45dd443eeadd7f5d176fa3244200e51 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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;
};