ATLauncher: Display mod colours in optional mod dialog

This commit is contained in:
Jamie Mansfield
2022-05-02 20:27:20 +01:00
parent f5f59203a2
commit 7c251efc47
8 changed files with 36 additions and 14 deletions

View File

@ -556,7 +556,7 @@ void PackInstallTask::downloadMods()
QVector<QString> selectedMods;
if (!optionalMods.isEmpty()) {
setStatus(tr("Selecting optional mods..."));
selectedMods = m_support->chooseOptionalMods(optionalMods);
selectedMods = m_support->chooseOptionalMods(m_version, optionalMods);
}
setStatus(tr("Downloading mods..."));

View File

@ -37,7 +37,7 @@ public:
/**
* Requests a user interaction to select which optional mods should be installed.
*/
virtual QVector<QString> chooseOptionalMods(QVector<ATLauncher::VersionMod> mods) = 0;
virtual QVector<QString> chooseOptionalMods(PackVersion version, QVector<ATLauncher::VersionMod> mods) = 0;
/**
* Requests a user interaction to select a component version from a given version list

View File

@ -178,6 +178,7 @@ static void loadVersionMod(ATLauncher::VersionMod & p, QJsonObject & obj) {
p.depends.append(Json::requireString(depends));
}
}
p.colour = Json::ensureString(obj, QString("colour"), "");
p.client = Json::ensureBoolean(obj, QString("client"), false);
@ -232,4 +233,9 @@ void ATLauncher::loadVersion(PackVersion & v, QJsonObject & obj)
auto configsObj = Json::requireObject(obj, "configs");
loadVersionConfigs(v.configs, configsObj);
}
auto colourObj = Json::ensureObject(obj, "colours");
for (const auto &key : colourObj.keys()) {
v.colours[key] = Json::requireString(colourObj.value(key), "colour");
}
}

View File

@ -16,9 +16,10 @@
#pragma once
#include <QJsonObject>
#include <QMap>
#include <QString>
#include <QVector>
#include <QJsonObject>
namespace ATLauncher
{
@ -109,6 +110,7 @@ struct VersionMod
bool library;
QString group;
QVector<QString> depends;
QString colour;
bool client;
@ -134,6 +136,8 @@ struct PackVersion
QVector<VersionLibrary> libraries;
QVector<VersionMod> mods;
VersionConfigs configs;
QMap<QString, QString> colours;
};
void loadVersion(PackVersion & v, QJsonObject & obj);