pollymc/api/logic/modplatform/flame/PackManifest.h

63 lines
1.1 KiB
C
Raw Normal View History

#pragma once
#include <QString>
#include <QVector>
#include <QUrl>
2017-04-22 22:21:04 +05:30
namespace Flame
{
struct File
{
// NOTE: throws JSONValidationError
bool parseFromBytes(const QByteArray &bytes);
2018-07-15 18:21:05 +05:30
int projectId = 0;
int fileId = 0;
// NOTE: the opposite to 'optional'. This is at the time of writing unused.
bool required = true;
2018-07-15 18:21:05 +05:30
// our
bool resolved = false;
QString fileName;
QUrl url;
QString targetFolder = QLatin1Literal("mods");
enum class Type
{
Unknown,
Folder,
Ctoc,
SingleFile,
Cmod2,
Modpack,
Mod
} type = Type::Mod;
};
struct Modloader
{
2018-07-15 18:21:05 +05:30
QString id;
bool primary = false;
};
struct Minecraft
{
2018-07-15 18:21:05 +05:30
QString version;
QString libraries;
QVector<Flame::Modloader> modLoaders;
};
struct Manifest
{
2018-07-15 18:21:05 +05:30
QString manifestType;
int manifestVersion = 0;
Flame::Minecraft minecraft;
QString name;
QString version;
QString author;
QVector<Flame::File> files;
QString overrides;
};
2017-04-22 22:21:04 +05:30
void loadManifest(Flame::Manifest & m, const QString &filepath);
}