Make 1.6+ work with new instance format.
This commit is contained in:
parent
92abe4c603
commit
69c3e7111f
29 changed files with 951 additions and 562 deletions
|
@ -1,29 +1,26 @@
|
|||
#include "MinecraftVersion.h"
|
||||
#include "VersionFinal.h"
|
||||
#include "VersionBuildError.h"
|
||||
#include "VersionBuilder.h"
|
||||
|
||||
bool MinecraftVersion::usesLegacyLauncher()
|
||||
{
|
||||
return m_traits.contains("legacyLaunch") || m_traits.contains("aplhaLaunch");
|
||||
}
|
||||
|
||||
QString MinecraftVersion::descriptor()
|
||||
{
|
||||
return m_descriptor;
|
||||
}
|
||||
|
||||
QString MinecraftVersion::name()
|
||||
{
|
||||
return m_name;
|
||||
}
|
||||
|
||||
QString MinecraftVersion::typeString() const
|
||||
{
|
||||
if (is_latest && is_snapshot)
|
||||
{
|
||||
return QObject::tr("Latest snapshot");
|
||||
}
|
||||
else if (is_latest)
|
||||
{
|
||||
return QObject::tr("Latest release");
|
||||
}
|
||||
else if (is_snapshot)
|
||||
if (is_snapshot)
|
||||
{
|
||||
return QObject::tr("Snapshot");
|
||||
}
|
||||
|
@ -32,22 +29,41 @@ QString MinecraftVersion::typeString() const
|
|||
return QObject::tr("Regular release");
|
||||
}
|
||||
}
|
||||
|
||||
bool MinecraftVersion::hasJarMods()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
bool MinecraftVersion::isVanilla()
|
||||
|
||||
bool MinecraftVersion::isMinecraftVersion()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// 1. assume the local file is good. load, check. If it's good, apply.
|
||||
// 2. if discrepancies are found, fall out and fail (impossible to apply incomplete version).
|
||||
void MinecraftVersion::applyFileTo(VersionFinal *version)
|
||||
{
|
||||
QFileInfo versionFile(QString("versions/%1/%1.json").arg(m_descriptor));
|
||||
|
||||
auto versionObj = VersionBuilder::parseJsonFile(versionFile, false, false);
|
||||
versionObj->applyTo(version);
|
||||
}
|
||||
|
||||
void MinecraftVersion::applyTo(VersionFinal *version)
|
||||
{
|
||||
// FIXME: make this work.
|
||||
if(m_versionSource != Builtin)
|
||||
// do we have this one cached?
|
||||
if (m_versionSource == Local)
|
||||
{
|
||||
applyFileTo(version);
|
||||
return;
|
||||
}
|
||||
// if not builtin, do not proceed any further.
|
||||
if (m_versionSource != Builtin)
|
||||
{
|
||||
throw VersionIncomplete(QObject::tr(
|
||||
"Minecraft version %1 could not be applied: version files are missing.").arg(m_descriptor));
|
||||
}
|
||||
if (!m_descriptor.isNull())
|
||||
{
|
||||
version->id = m_descriptor;
|
||||
|
@ -81,15 +97,35 @@ void MinecraftVersion::applyTo(VersionFinal *version)
|
|||
}
|
||||
version->traits.unite(m_traits);
|
||||
}
|
||||
|
||||
int MinecraftVersion::getOrder()
|
||||
{
|
||||
return order;
|
||||
}
|
||||
|
||||
void MinecraftVersion::setOrder(int order)
|
||||
{
|
||||
this->order = order;
|
||||
}
|
||||
|
||||
QList<JarmodPtr> MinecraftVersion::getJarMods()
|
||||
{
|
||||
return QList<JarmodPtr>();
|
||||
}
|
||||
|
||||
QString MinecraftVersion::getPatchName()
|
||||
{
|
||||
return "Minecraft";
|
||||
}
|
||||
QString MinecraftVersion::getPatchVersion()
|
||||
{
|
||||
return m_descriptor;
|
||||
}
|
||||
QString MinecraftVersion::getPatchID()
|
||||
{
|
||||
return "net.minecraft";
|
||||
}
|
||||
QString MinecraftVersion::getPatchFilename()
|
||||
{
|
||||
return QString();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue