@ -1,22 +1,20 @@
|
||||
#include "AssetUpdateTask.h"
|
||||
|
||||
#include "minecraft/AssetsUtils.h"
|
||||
#include "minecraft/MinecraftInstance.h"
|
||||
#include "minecraft/PackProfile.h"
|
||||
#include "net/ChecksumValidator.h"
|
||||
#include "minecraft/AssetsUtils.h"
|
||||
|
||||
#include "Application.h"
|
||||
|
||||
#include "net/ApiDownload.h"
|
||||
|
||||
AssetUpdateTask::AssetUpdateTask(MinecraftInstance * inst)
|
||||
AssetUpdateTask::AssetUpdateTask(MinecraftInstance* inst)
|
||||
{
|
||||
m_inst = inst;
|
||||
}
|
||||
|
||||
AssetUpdateTask::~AssetUpdateTask()
|
||||
{
|
||||
}
|
||||
AssetUpdateTask::~AssetUpdateTask() {}
|
||||
|
||||
void AssetUpdateTask::executeTask()
|
||||
{
|
||||
@ -26,10 +24,7 @@ void AssetUpdateTask::executeTask()
|
||||
auto assets = profile->getMinecraftAssets();
|
||||
QUrl indexUrl = assets->url;
|
||||
QString localPath = assets->id + ".json";
|
||||
auto job = makeShared<NetJob>(
|
||||
tr("Asset index for %1").arg(m_inst->name()),
|
||||
APPLICATION->network()
|
||||
);
|
||||
auto job = makeShared<NetJob>(tr("Asset index for %1").arg(m_inst->name()), APPLICATION->network());
|
||||
|
||||
auto metacache = APPLICATION->metacache();
|
||||
auto entry = metacache->resolveEntry("asset_indexes", localPath);
|
||||
@ -45,7 +40,7 @@ void AssetUpdateTask::executeTask()
|
||||
|
||||
connect(downloadJob.get(), &NetJob::succeeded, this, &AssetUpdateTask::assetIndexFinished);
|
||||
connect(downloadJob.get(), &NetJob::failed, this, &AssetUpdateTask::assetIndexFailed);
|
||||
connect(downloadJob.get(), &NetJob::aborted, this, [this]{ emitFailed(tr("Aborted")); });
|
||||
connect(downloadJob.get(), &NetJob::aborted, this, [this] { emitFailed(tr("Aborted")); });
|
||||
connect(downloadJob.get(), &NetJob::progress, this, &AssetUpdateTask::progress);
|
||||
connect(downloadJob.get(), &NetJob::stepProgress, this, &AssetUpdateTask::propagateStepProgress);
|
||||
|
||||
@ -69,8 +64,7 @@ void AssetUpdateTask::assetIndexFinished()
|
||||
|
||||
QString asset_fname = "assets/indexes/" + assets->id + ".json";
|
||||
// FIXME: this looks like a job for a generic validator based on json schema?
|
||||
if (!AssetsUtils::loadAssetsIndexJson(assets->id, asset_fname, index))
|
||||
{
|
||||
if (!AssetsUtils::loadAssetsIndexJson(assets->id, asset_fname, index)) {
|
||||
auto metacache = APPLICATION->metacache();
|
||||
auto entry = metacache->resolveEntry("asset_indexes", assets->id + ".json");
|
||||
metacache->evictEntry(entry);
|
||||
@ -78,13 +72,12 @@ void AssetUpdateTask::assetIndexFinished()
|
||||
}
|
||||
|
||||
auto job = index.getDownloadJob();
|
||||
if(job)
|
||||
{
|
||||
if (job) {
|
||||
setStatus(tr("Getting the assets files from Mojang..."));
|
||||
downloadJob = job;
|
||||
connect(downloadJob.get(), &NetJob::succeeded, this, &AssetUpdateTask::emitSucceeded);
|
||||
connect(downloadJob.get(), &NetJob::failed, this, &AssetUpdateTask::assetsFailed);
|
||||
connect(downloadJob.get(), &NetJob::aborted, this, [this]{ emitFailed(tr("Aborted")); });
|
||||
connect(downloadJob.get(), &NetJob::aborted, this, [this] { emitFailed(tr("Aborted")); });
|
||||
connect(downloadJob.get(), &NetJob::progress, this, &AssetUpdateTask::progress);
|
||||
connect(downloadJob.get(), &NetJob::stepProgress, this, &AssetUpdateTask::propagateStepProgress);
|
||||
downloadJob->start();
|
||||
@ -106,12 +99,9 @@ void AssetUpdateTask::assetsFailed(QString reason)
|
||||
|
||||
bool AssetUpdateTask::abort()
|
||||
{
|
||||
if(downloadJob)
|
||||
{
|
||||
if (downloadJob) {
|
||||
return downloadJob->abort();
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
qWarning() << "Prematurely aborted AssetUpdateTask";
|
||||
}
|
||||
return true;
|
||||
|
Reference in New Issue
Block a user