Files
prismlauncher-crack/launcher/minecraft/mod/ShaderPackFolderModel.h
TheKodeToad 1cf48dfd85 Don't use .index for shaderpacks
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2026-01-06 15:05:23 +00:00

37 lines
1.2 KiB
C++

#pragma once
#include "ResourceFolderModel.h"
#include "minecraft/mod/ShaderPack.h"
#include "minecraft/mod/tasks/LocalShaderPackParseTask.h"
class ShaderPackFolderModel : public ResourceFolderModel {
Q_OBJECT
public:
explicit ShaderPackFolderModel(const QDir& dir, BaseInstance* instance, bool is_indexed, bool create_dir, QObject* parent = nullptr)
: ResourceFolderModel(dir, instance, is_indexed, create_dir, parent)
{}
virtual QString id() const override { return "shaderpacks"; }
[[nodiscard]] Resource* createResource(const QFileInfo& info) override { return new ShaderPack(info); }
[[nodiscard]] Task* createParseTask(Resource& resource) override
{
return new LocalShaderPackParseTask(m_next_resolution_ticket, static_cast<ShaderPack&>(resource));
}
QDir indexDir() const override { return m_dir; }
Task* createPreUpdateTask() override;
// avoid watching twice
virtual bool startWatching() override { return ResourceFolderModel::startWatching({ m_dir.absolutePath() }); }
virtual bool stopWatching() override { return ResourceFolderModel::stopWatching({ m_dir.absolutePath() }); }
RESOURCE_HELPERS(ShaderPack);
private:
QMutex m_migrateLock;
};