diff options
-rw-r--r-- | api/logic/CMakeLists.txt | 10 | ||||
-rw-r--r-- | api/logic/InstanceImportTask.cpp | 57 | ||||
-rw-r--r-- | api/logic/InstanceImportTask.h | 6 | ||||
-rw-r--r-- | api/logic/minecraft/flame/FileResolvingTask.cpp (renamed from api/logic/minecraft/curse/FileResolvingTask.cpp) | 14 | ||||
-rw-r--r-- | api/logic/minecraft/flame/FileResolvingTask.h (renamed from api/logic/minecraft/curse/FileResolvingTask.h) | 8 | ||||
-rw-r--r-- | api/logic/minecraft/flame/PackManifest.cpp (renamed from api/logic/minecraft/curse/PackManifest.cpp) | 18 | ||||
-rw-r--r-- | api/logic/minecraft/flame/PackManifest.h (renamed from api/logic/minecraft/curse/PackManifest.h) | 10 | ||||
-rw-r--r-- | application/resources/multimc/128x128/instances/flame.png | bin | 0 -> 3375 bytes | |||
-rw-r--r-- | application/resources/multimc/32x32/instances/flame.png | bin | 0 -> 849 bytes | |||
-rw-r--r-- | application/resources/multimc/multimc.qrc | 3 | ||||
-rw-r--r-- | application/resources/sources/flame.svg | 51 |
11 files changed, 118 insertions, 59 deletions
diff --git a/api/logic/CMakeLists.txt b/api/logic/CMakeLists.txt index fa1a9f57..096af6b1 100644 --- a/api/logic/CMakeLists.txt +++ b/api/logic/CMakeLists.txt @@ -291,11 +291,11 @@ set(MINECRAFT_SOURCES minecraft/ftb/FTBPlugin.h minecraft/ftb/FTBPlugin.cpp - # Curse - minecraft/curse/PackManifest.h - minecraft/curse/PackManifest.cpp - minecraft/curse/FileResolvingTask.h - minecraft/curse/FileResolvingTask.cpp + # Flame + minecraft/flame/PackManifest.h + minecraft/flame/PackManifest.cpp + minecraft/flame/FileResolvingTask.h + minecraft/flame/FileResolvingTask.cpp # Assets minecraft/AssetsUtils.h diff --git a/api/logic/InstanceImportTask.cpp b/api/logic/InstanceImportTask.cpp index 2005b61f..f1b3d5aa 100644 --- a/api/logic/InstanceImportTask.cpp +++ b/api/logic/InstanceImportTask.cpp @@ -11,9 +11,9 @@ #include "icons/IIconList.h" #include <QtConcurrentRun> -// FIXME: this does not belong here, it's Minecraft/Curse specific -#include "minecraft/curse/FileResolvingTask.h" -#include "minecraft/curse/PackManifest.h" +// FIXME: this does not belong here, it's Minecraft/Flame specific +#include "minecraft/flame/FileResolvingTask.h" +#include "minecraft/flame/PackManifest.h" #include "Json.h" InstanceImportTask::InstanceImportTask(SettingsObjectPtr settings, const QUrl sourceUrl, BaseInstanceProvider * target, @@ -147,16 +147,16 @@ void InstanceImportTask::extractFinished() } const QFileInfo instanceCfgFile = findRecursive(extractDir.absolutePath(), "instance.cfg"); - const QFileInfo curseJson = findRecursive(extractDir.absolutePath(), "manifest.json"); + const QFileInfo flameJson = findRecursive(extractDir.absolutePath(), "manifest.json"); if (instanceCfgFile.isFile()) { qDebug() << "Pack appears to be exported from MultiMC."; processMultiMC(instanceCfgFile); } - else if (curseJson.isFile()) + else if (flameJson.isFile()) { - qDebug() << "Pack appears to be from Curse."; - processCurse(curseJson); + qDebug() << "Pack appears to be from 'Flame'."; + processFlame(flameJson); } else { @@ -173,7 +173,7 @@ void InstanceImportTask::extractAborted() return; } -void InstanceImportTask::processCurse(const QFileInfo & manifest) +void InstanceImportTask::processFlame(const QFileInfo & manifest) { const static QMap<QString,QString> forgemap = { {"1.2.5", "3.4.9.171"}, @@ -181,15 +181,15 @@ void InstanceImportTask::processCurse(const QFileInfo & manifest) {"1.4.7", "6.6.2.534"}, {"1.5.2", "7.8.1.737"} }; - Curse::Manifest pack; + Flame::Manifest pack; try { - Curse::loadManifest(pack, manifest.absoluteFilePath()); + Flame::loadManifest(pack, manifest.absoluteFilePath()); } catch (JSONValidationError & e) { m_target->destroyStagingPath(m_stagingPath); - emitFailed(tr("Could not understand curse manifest:\n") + e.cause()); + emitFailed(tr("Could not understand pack manifest:\n") + e.cause()); return; } m_packRoot = manifest.absolutePath(); @@ -200,7 +200,7 @@ void InstanceImportTask::processCurse(const QFileInfo & manifest) if (!QFile::rename(overridePath, mcPath)) { m_target->destroyStagingPath(m_stagingPath); - emitFailed(tr("Could not rename the curse overrides:\n") + pack.overrides); + emitFailed(tr("Could not rename the overrides folder:\n") + pack.overrides); return; } } @@ -215,7 +215,7 @@ void InstanceImportTask::processCurse(const QFileInfo & manifest) forgeVersion = id; continue; } - qWarning() << "Unknown mod loader in curse manifest:" << id; + qWarning() << "Unknown mod loader in manifest:" << id; } QString configPath = FS::PathCombine(m_packRoot, "instance.cfg"); @@ -224,11 +224,11 @@ void InstanceImportTask::processCurse(const QFileInfo & manifest) instanceSettings->set("InstanceType", "OneSix"); OneSixInstance instance(m_globalSettings, instanceSettings, m_packRoot); auto mcVersion = pack.minecraft.version; - // Hack to correct some 'special curse sauce'... + // Hack to correct some 'special sauce'... if(mcVersion.endsWith('.')) { mcVersion.remove(QRegExp("[.]+$")); - qWarning() << "Mysterious trailing dots removed from Minecraft version while importing Curse pack."; + qWarning() << "Mysterious trailing dots removed from Minecraft version while importing pack."; } instance.setComponentVersion("net.minecraft", mcVersion); if(!forgeVersion.isEmpty()) @@ -261,6 +261,11 @@ void InstanceImportTask::processCurse(const QFileInfo & manifest) { instance.setIconKey("ftb_logo"); } + else + { + // default to something other than the MultiMC default to distinguish these + instance.setIconKey("flame"); + } } instance.init(); QString jarmodsPath = FS::PathCombine(m_packRoot, "minecraft", "jarmods"); @@ -282,18 +287,18 @@ void InstanceImportTask::processCurse(const QFileInfo & manifest) FS::deletePath(jarmodsPath); } instance.setName(m_instName); - m_curseResolver.reset(new Curse::FileResolvingTask(pack)); - connect(m_curseResolver.get(), &Curse::FileResolvingTask::succeeded, [&]() + m_modIdResolver.reset(new Flame::FileResolvingTask(pack)); + connect(m_modIdResolver.get(), &Flame::FileResolvingTask::succeeded, [&]() { - auto results = m_curseResolver->getResults(); - m_filesNetJob.reset(new NetJob(tr("Curse mod download"))); + auto results = m_modIdResolver->getResults(); + m_filesNetJob.reset(new NetJob(tr("Mod download"))); for(auto result: results.files) { auto path = FS::PathCombine(m_packRoot, "minecraft/mods", result.fileName); auto dl = Net::Download::makeFile(result.url,path); m_filesNetJob->addNetAction(dl); } - m_curseResolver.reset(); + m_modIdResolver.reset(); connect(m_filesNetJob.get(), &NetJob::succeeded, this, [&]() { m_filesNetJob.reset(); @@ -320,21 +325,21 @@ void InstanceImportTask::processCurse(const QFileInfo & manifest) m_filesNetJob->start(); } ); - connect(m_curseResolver.get(), &Curse::FileResolvingTask::failed, [&](QString reason) + connect(m_modIdResolver.get(), &Flame::FileResolvingTask::failed, [&](QString reason) { m_target->destroyStagingPath(m_stagingPath); - m_curseResolver.reset(); - emitFailed(tr("Unable to resolve Curse mod IDs:\n") + reason); + m_modIdResolver.reset(); + emitFailed(tr("Unable to resolve mod IDs:\n") + reason); }); - connect(m_curseResolver.get(), &Curse::FileResolvingTask::progress, [&](qint64 current, qint64 total) + connect(m_modIdResolver.get(), &Flame::FileResolvingTask::progress, [&](qint64 current, qint64 total) { setProgress(current, total); }); - connect(m_curseResolver.get(), &Curse::FileResolvingTask::status, [&](QString status) + connect(m_modIdResolver.get(), &Flame::FileResolvingTask::status, [&](QString status) { setStatus(status); }); - m_curseResolver->start(); + m_modIdResolver->start(); } void InstanceImportTask::processMultiMC(const QFileInfo & config) diff --git a/api/logic/InstanceImportTask.h b/api/logic/InstanceImportTask.h index a1c1857d..d5192299 100644 --- a/api/logic/InstanceImportTask.h +++ b/api/logic/InstanceImportTask.h @@ -10,7 +10,7 @@ #include "QObjectPtr.h" class BaseInstanceProvider; -namespace Curse +namespace Flame { class FileResolvingTask; } @@ -29,7 +29,7 @@ protected: private: void extractAndTweak(); void processMultiMC(const QFileInfo &config); - void processCurse(const QFileInfo &manifest); + void processFlame(const QFileInfo &manifest); private slots: void downloadSucceeded(); @@ -41,7 +41,7 @@ private slots: private: /* data */ SettingsObjectPtr m_globalSettings; NetJobPtr m_filesNetJob; - shared_qobject_ptr<Curse::FileResolvingTask> m_curseResolver; + shared_qobject_ptr<Flame::FileResolvingTask> m_modIdResolver; QUrl m_sourceUrl; BaseInstanceProvider * m_target; QString m_archivePath; diff --git a/api/logic/minecraft/curse/FileResolvingTask.cpp b/api/logic/minecraft/flame/FileResolvingTask.cpp index aaac404b..582e4a07 100644 --- a/api/logic/minecraft/curse/FileResolvingTask.cpp +++ b/api/logic/minecraft/flame/FileResolvingTask.cpp @@ -3,16 +3,16 @@ const char * metabase = "https://cursemeta.dries007.net"; -Curse::FileResolvingTask::FileResolvingTask(Curse::Manifest& toProcess) +Flame::FileResolvingTask::FileResolvingTask(Flame::Manifest& toProcess) : m_toProcess(toProcess) { } -void Curse::FileResolvingTask::executeTask() +void Flame::FileResolvingTask::executeTask() { - setStatus(tr("Resolving curse mod IDs...")); + setStatus(tr("Resolving mod IDs...")); setProgress(0, m_toProcess.files.size()); - m_dljob.reset(new NetJob("Curse file resolver")); + m_dljob.reset(new NetJob("Mod id resolver")); results.resize(m_toProcess.files.size()); int index = 0; for(auto & file: m_toProcess.files) @@ -24,11 +24,11 @@ void Curse::FileResolvingTask::executeTask() m_dljob->addNetAction(dl); index ++; } - connect(m_dljob.get(), &NetJob::finished, this, &Curse::FileResolvingTask::netJobFinished); + connect(m_dljob.get(), &NetJob::finished, this, &Flame::FileResolvingTask::netJobFinished); m_dljob->start(); } -void Curse::FileResolvingTask::netJobFinished() +void Flame::FileResolvingTask::netJobFinished() { bool failed = false; int index = 0; @@ -61,6 +61,6 @@ void Curse::FileResolvingTask::netJobFinished() } else { - emitFailed(tr("Some curse ID resolving tasks failed.")); + emitFailed(tr("Some mod ID resolving tasks failed.")); } } diff --git a/api/logic/minecraft/curse/FileResolvingTask.h b/api/logic/minecraft/flame/FileResolvingTask.h index a9357bfb..00658452 100644 --- a/api/logic/minecraft/curse/FileResolvingTask.h +++ b/api/logic/minecraft/flame/FileResolvingTask.h @@ -6,14 +6,14 @@ #include "multimc_logic_export.h" -namespace Curse +namespace Flame { class MULTIMC_LOGIC_EXPORT FileResolvingTask : public Task { Q_OBJECT public: - explicit FileResolvingTask(Curse::Manifest &toProcess); - const Curse::Manifest &getResults() const + explicit FileResolvingTask(Flame::Manifest &toProcess); + const Flame::Manifest &getResults() const { return m_toProcess; } @@ -25,7 +25,7 @@ protected slots: void netJobFinished(); private: /* data */ - Curse::Manifest m_toProcess; + Flame::Manifest m_toProcess; QVector<QByteArray> results; NetJobPtr m_dljob; }; diff --git a/api/logic/minecraft/curse/PackManifest.cpp b/api/logic/minecraft/flame/PackManifest.cpp index 7d9c2f89..62921493 100644 --- a/api/logic/minecraft/curse/PackManifest.cpp +++ b/api/logic/minecraft/flame/PackManifest.cpp @@ -1,7 +1,7 @@ #include "PackManifest.h" #include "Json.h" -static void loadFileV1(Curse::File & f, QJsonObject & file) +static void loadFileV1(Flame::File & f, QJsonObject & file) { f.projectId = Json::requireInteger(file, "projectID"); f.fileId = Json::requireInteger(file, "fileID"); @@ -9,29 +9,29 @@ static void loadFileV1(Curse::File & f, QJsonObject & file) f.required = Json::ensureBoolean(file, QString("required"), true); } -static void loadModloaderV1(Curse::Modloader & m, QJsonObject & modLoader) +static void loadModloaderV1(Flame::Modloader & m, QJsonObject & modLoader) { m.id = Json::requireString(modLoader, "id"); m.primary = Json::ensureBoolean(modLoader, QString("primary"), false); } -static void loadMinecraftV1(Curse::Minecraft & m, QJsonObject & minecraft) +static void loadMinecraftV1(Flame::Minecraft & m, QJsonObject & minecraft) { m.version = Json::requireString(minecraft, "version"); // extra libraries... apparently only used for a custom Minecraft launcher in the 1.2.5 FTB retro pack - // intended use is likely hardcoded in the Curse client, the manifest says nothing + // intended use is likely hardcoded in the 'Flame' client, the manifest says nothing m.libraries = Json::ensureString(minecraft, QString("libraries"), QString()); auto arr = Json::ensureArray(minecraft, "modLoaders", QJsonArray()); for (const auto & item : arr) { auto obj = Json::requireObject(item); - Curse::Modloader loader; + Flame::Modloader loader; loadModloaderV1(loader, obj); m.modLoaders.append(loader); } } -static void loadManifestV1(Curse::Manifest & m, QJsonObject & manifest) +static void loadManifestV1(Flame::Manifest & m, QJsonObject & manifest) { auto mc = Json::requireObject(manifest, "minecraft"); loadMinecraftV1(m.minecraft, mc); @@ -42,21 +42,21 @@ static void loadManifestV1(Curse::Manifest & m, QJsonObject & manifest) for (const auto & item : arr) { auto obj = Json::requireObject(item); - Curse::File file; + Flame::File file; loadFileV1(file, obj); m.files.append(file); } m.overrides = Json::ensureString(manifest, "overrides", "overrides"); } -void Curse::loadManifest(Curse::Manifest & m, const QString &filepath) +void Flame::loadManifest(Flame::Manifest & m, const QString &filepath) { auto doc = Json::requireDocument(filepath); auto obj = Json::requireObject(doc); m.manifestType = Json::requireString(obj, "manifestType"); if(m.manifestType != "minecraftModpack") { - throw JSONValidationError("Not a Curse modpack manifest!"); + throw JSONValidationError("Not a modpack manifest!"); } m.manifestVersion = Json::requireInteger(obj, "manifestVersion"); if(m.manifestVersion != 1) diff --git a/api/logic/minecraft/curse/PackManifest.h b/api/logic/minecraft/flame/PackManifest.h index 36e05cc2..ae91bffb 100644 --- a/api/logic/minecraft/curse/PackManifest.h +++ b/api/logic/minecraft/flame/PackManifest.h @@ -3,7 +3,7 @@ #include <QString> #include <QVector> -namespace Curse +namespace Flame { struct File { @@ -27,20 +27,20 @@ struct Minecraft { QString version; QString libraries; - QVector<Curse::Modloader> modLoaders; + QVector<Flame::Modloader> modLoaders; }; struct Manifest { QString manifestType; int manifestVersion = 0; - Curse::Minecraft minecraft; + Flame::Minecraft minecraft; QString name; QString version; QString author; - QVector<Curse::File> files; + QVector<Flame::File> files; QString overrides; }; -void loadManifest(Curse::Manifest & m, const QString &filepath); +void loadManifest(Flame::Manifest & m, const QString &filepath); } diff --git a/application/resources/multimc/128x128/instances/flame.png b/application/resources/multimc/128x128/instances/flame.png Binary files differnew file mode 100644 index 00000000..8a50a0b4 --- /dev/null +++ b/application/resources/multimc/128x128/instances/flame.png diff --git a/application/resources/multimc/32x32/instances/flame.png b/application/resources/multimc/32x32/instances/flame.png Binary files differnew file mode 100644 index 00000000..d8987338 --- /dev/null +++ b/application/resources/multimc/32x32/instances/flame.png diff --git a/application/resources/multimc/multimc.qrc b/application/resources/multimc/multimc.qrc index ef3e9ab6..b4bc5c16 100644 --- a/application/resources/multimc/multimc.qrc +++ b/application/resources/multimc/multimc.qrc @@ -249,6 +249,9 @@ <file>32x32/instances/ftb_logo.png</file> <file>128x128/instances/ftb_logo.png</file> + <file>32x32/instances/flame.png</file> + <file>128x128/instances/flame.png</file> + <file>32x32/instances/gear.png</file> <file>128x128/instances/gear.png</file> diff --git a/application/resources/sources/flame.svg b/application/resources/sources/flame.svg new file mode 100644 index 00000000..8a6da2f7 --- /dev/null +++ b/application/resources/sources/flame.svg @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 127.99999 128" + height="128" + width="128" + id="svg2" + version="1.1"> + <metadata + id="metadata8"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs6" /> + <path + id="path4509" + d="m 93.706631,98.374916 c 2e-6,12.224574 -12.676714,22.134544 -28.314236,22.134544 -15.637522,0 -28.314238,-9.90997 -28.314236,-22.134544 10e-7,-12.224569 11.178608,-36.815994 26.816128,-36.815994 15.637521,0 29.812343,24.591425 29.812344,36.815994 z" + style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke-width:1.17175078;marker:none;enable-background:accumulate" /> + <g + transform="matrix(0.22142825,0,0,0.22142825,33.524659,-1.9444021)" + id="g4505"> + <path + style="fill:#ff7500;fill-opacity:1;fill-rule:evenodd" + d="m 285.26215,237.39406 c -4.43799,0.93416 -40.69637,2.61517 -41.21184,41.12844 -0.51547,38.51328 52.00568,64.86852 53.07625,129.21055 1.02262,61.46009 -43.4082,133.87308 -118.22034,141.52542 51.89013,-43.65773 59.51106,-100.48068 13.98305,-151.27119 -23.73802,-26.48184 -56.20743,-44.93245 -54.2373,-96.18644 1.97013,-51.25399 80.13525,-121.18396 146.61018,-64.40678 z" + id="path4491" /> + <path + id="path4493" + d="m 49.139955,83.857637 c 5.14236,1.40482 47.15538,3.93282 47.75267,61.850853 0.59728,57.91808 -115.98924,109.53719 -117.22972,206.29773 -1.18493,92.42657 41.90823,185.7443 128.593975,197.25225 C 48.131155,483.60392 47.690095,413.73124 100.44395,337.35009 127.9495,297.52546 221.3018,257.7937 219.01898,180.71555 216.73616,103.63741 126.16528,-1.5265416 49.139955,83.857637 Z" + style="fill:#ff7500;fill-opacity:1;fill-rule:evenodd;stroke-width:1.32004774" /> + <path + id="path4497" + d="m 244.91289,277.23386 c -3.04702,-0.0596 -26.88302,-4.71504 -34.06545,22.18053 -7.18245,26.89556 22.22556,53.80661 11.48022,99.05033 -10.26404,43.2172 -51.9816,86.79466 -101.90647,80.11983 41.44697,-22.23442 56.49745,-60.81281 35.97375,-103.71573 -10.70094,-22.3693 -28.49783,-40.51738 -18.10576,-76.10378 10.3921,-35.5864 73.56677,-71.99754 106.62371,-21.53118 z" + style="fill:#ff7500;fill-opacity:1;fill-rule:evenodd;stroke-width:0.69522083" /> + <path + style="fill:#ff7500;fill-opacity:1;fill-rule:evenodd;stroke-width:0.5843063" + d="m 54.097869,231.55891 c 2.12507,0.34666 19.5376,-1.05581 19.45707,26.31399 -0.0805,27.36978 -25.54842,49.88894 -26.61138,95.75261 -1.01537,43.80938 19.72217,92.1553 55.613891,92.23888 C 77.989639,418.51587 74.811129,378.62585 97.126179,339.21931 108.76111,318.67301 124.52413,303.21607 124.01412,266.88402 123.50408,230.55198 86.531659,186.39085 54.097869,231.55891 Z" + id="path4499" /> + </g> +</svg> |