aboutsummaryrefslogtreecommitdiff
path: root/logic
diff options
context:
space:
mode:
Diffstat (limited to 'logic')
-rw-r--r--logic/BaseInstaller.cpp9
-rw-r--r--logic/BaseInstaller.h2
-rw-r--r--logic/BaseInstance.cpp4
-rw-r--r--logic/BaseInstance.h24
-rw-r--r--logic/BaseVersion.h4
-rw-r--r--logic/BaseVersionList.cpp (renamed from logic/lists/BaseVersionList.cpp)2
-rw-r--r--logic/BaseVersionList.h (renamed from logic/lists/BaseVersionList.h)0
-rw-r--r--logic/InstanceFactory.cpp79
-rw-r--r--logic/InstanceLauncher.cpp2
-rw-r--r--logic/InstanceList.cpp (renamed from logic/lists/InstanceList.cpp)16
-rw-r--r--logic/InstanceList.h (renamed from logic/lists/InstanceList.h)0
-rw-r--r--logic/LegacyFTBInstance.cpp5
-rw-r--r--logic/LegacyFTBInstance.h1
-rw-r--r--logic/LegacyInstance.cpp55
-rw-r--r--logic/LegacyInstance.h14
-rw-r--r--logic/LegacyUpdate.cpp85
-rw-r--r--logic/LegacyUpdate.h9
-rw-r--r--logic/LwjglVersionList.cpp (renamed from logic/lists/LwjglVersionList.cpp)0
-rw-r--r--logic/LwjglVersionList.h (renamed from logic/lists/LwjglVersionList.h)0
-rw-r--r--logic/MMCJson.cpp24
-rw-r--r--logic/MMCJson.h19
-rw-r--r--logic/MinecraftVersion.h89
-rw-r--r--logic/ModList.cpp1
-rw-r--r--logic/NostalgiaInstance.cpp36
-rw-r--r--logic/NostalgiaInstance.h29
-rw-r--r--logic/OneSixFTBInstance.cpp16
-rw-r--r--logic/OneSixFTBInstance.h1
-rw-r--r--logic/OneSixInstance.cpp299
-rw-r--r--logic/OneSixInstance.h44
-rw-r--r--logic/OneSixInstance_p.h13
-rw-r--r--logic/OneSixUpdate.cpp357
-rw-r--r--logic/OneSixUpdate.h21
-rw-r--r--logic/OneSixVersionBuilder.cpp252
-rw-r--r--logic/OneSixVersionBuilder.h47
-rw-r--r--logic/URNResolver.cpp98
-rw-r--r--logic/URNResolver.h18
-rw-r--r--logic/VersionFile.h127
-rw-r--r--logic/VersionFilterData.cpp68
-rw-r--r--logic/VersionFilterData.h26
-rw-r--r--logic/VersionFinal.cpp377
-rw-r--r--logic/forge/ForgeInstaller.cpp (renamed from logic/ForgeInstaller.cpp)194
-rw-r--r--logic/forge/ForgeInstaller.h (renamed from logic/ForgeInstaller.h)22
-rw-r--r--logic/forge/ForgeMirror.h (renamed from logic/net/ForgeMirror.h)0
-rw-r--r--logic/forge/ForgeMirrors.cpp (renamed from logic/net/ForgeMirrors.cpp)0
-rw-r--r--logic/forge/ForgeMirrors.h (renamed from logic/net/ForgeMirrors.h)8
-rw-r--r--logic/forge/ForgeVersion.cpp55
-rw-r--r--logic/forge/ForgeVersion.h33
-rw-r--r--logic/forge/ForgeVersionList.cpp (renamed from logic/lists/ForgeVersionList.cpp)28
-rw-r--r--logic/forge/ForgeVersionList.h (renamed from logic/lists/ForgeVersionList.h)55
-rw-r--r--logic/forge/ForgeXzDownload.cpp (renamed from logic/net/ForgeXzDownload.cpp)0
-rw-r--r--logic/forge/ForgeXzDownload.h (renamed from logic/net/ForgeXzDownload.h)4
-rw-r--r--logic/forge/LegacyForge.cpp (renamed from logic/LegacyForge.cpp)0
-rw-r--r--logic/forge/LegacyForge.h (renamed from logic/LegacyForge.h)2
-rw-r--r--logic/java/JavaChecker.cpp (renamed from logic/JavaChecker.cpp)0
-rw-r--r--logic/java/JavaChecker.h (renamed from logic/JavaChecker.h)0
-rw-r--r--logic/java/JavaCheckerJob.cpp (renamed from logic/JavaCheckerJob.cpp)0
-rw-r--r--logic/java/JavaCheckerJob.h (renamed from logic/JavaCheckerJob.h)0
-rw-r--r--logic/java/JavaUtils.cpp (renamed from logic/JavaUtils.cpp)8
-rw-r--r--logic/java/JavaUtils.h (renamed from logic/JavaUtils.h)2
-rw-r--r--logic/java/JavaVersionList.cpp (renamed from logic/lists/JavaVersionList.cpp)10
-rw-r--r--logic/java/JavaVersionList.h (renamed from logic/lists/JavaVersionList.h)4
-rw-r--r--logic/lists/MinecraftVersionList.cpp290
-rw-r--r--logic/liteloader/LiteLoaderInstaller.cpp (renamed from logic/LiteLoaderInstaller.cpp)8
-rw-r--r--logic/liteloader/LiteLoaderInstaller.h (renamed from logic/LiteLoaderInstaller.h)5
-rw-r--r--logic/liteloader/LiteLoaderVersionList.cpp (renamed from logic/lists/LiteLoaderVersionList.cpp)0
-rw-r--r--logic/liteloader/LiteLoaderVersionList.h (renamed from logic/lists/LiteLoaderVersionList.h)6
-rw-r--r--logic/minecraft/InstanceVersion.cpp537
-rw-r--r--logic/minecraft/InstanceVersion.h (renamed from logic/VersionFinal.h)73
-rw-r--r--logic/minecraft/JarMod.cpp56
-rw-r--r--logic/minecraft/JarMod.h18
-rw-r--r--logic/minecraft/MinecraftVersion.cpp143
-rw-r--r--logic/minecraft/MinecraftVersion.h103
-rw-r--r--logic/minecraft/MinecraftVersionList.cpp602
-rw-r--r--logic/minecraft/MinecraftVersionList.h (renamed from logic/lists/MinecraftVersionList.h)42
-rw-r--r--logic/minecraft/OneSixLibrary.cpp (renamed from logic/OneSixLibrary.cpp)79
-rw-r--r--logic/minecraft/OneSixLibrary.h (renamed from logic/OneSixLibrary.h)34
-rw-r--r--logic/minecraft/OneSixRule.cpp (renamed from logic/OneSixRule.cpp)17
-rw-r--r--logic/minecraft/OneSixRule.h (renamed from logic/OneSixRule.h)8
-rw-r--r--logic/minecraft/OpSys.cpp (renamed from logic/OpSys.cpp)0
-rw-r--r--logic/minecraft/OpSys.h (renamed from logic/OpSys.h)0
-rw-r--r--logic/minecraft/ParseUtils.cpp24
-rw-r--r--logic/minecraft/ParseUtils.h14
-rw-r--r--logic/minecraft/RawLibrary.cpp205
-rw-r--r--logic/minecraft/RawLibrary.h64
-rw-r--r--logic/minecraft/VersionBuildError.h58
-rw-r--r--logic/minecraft/VersionBuilder.cpp349
-rw-r--r--logic/minecraft/VersionBuilder.h56
-rw-r--r--logic/minecraft/VersionFile.cpp (renamed from logic/VersionFile.cpp)378
-rw-r--r--logic/minecraft/VersionFile.h103
-rw-r--r--logic/minecraft/VersionPatch.h31
-rw-r--r--logic/minecraft/VersionSource.h9
-rw-r--r--logic/net/NetJob.h1
-rw-r--r--logic/tasks/ProgressProvider.h1
93 files changed, 3848 insertions, 2164 deletions
diff --git a/logic/BaseInstaller.cpp b/logic/BaseInstaller.cpp
index 669fd0ac..5660eb07 100644
--- a/logic/BaseInstaller.cpp
+++ b/logic/BaseInstaller.cpp
@@ -13,15 +13,10 @@
* limitations under the License.
*/
-#include "BaseInstaller.h"
-
#include <QFile>
-#include "VersionFinal.h"
-#include "OneSixLibrary.h"
-#include "OneSixInstance.h"
-
-#include "cmdutils.h"
+#include "logic/BaseInstaller.h"
+#include "logic/OneSixInstance.h"
BaseInstaller::BaseInstaller()
{
diff --git a/logic/BaseInstaller.h b/logic/BaseInstaller.h
index d59833cc..9531fbff 100644
--- a/logic/BaseInstaller.h
+++ b/logic/BaseInstaller.h
@@ -29,7 +29,7 @@ class BaseInstaller
{
public:
BaseInstaller();
-
+ virtual ~BaseInstaller(){};
bool isApplied(OneSixInstance *on);
virtual bool add(OneSixInstance *to);
diff --git a/logic/BaseInstance.cpp b/logic/BaseInstance.cpp
index 5fa62593..0088530f 100644
--- a/logic/BaseInstance.cpp
+++ b/logic/BaseInstance.cpp
@@ -27,7 +27,7 @@
#include "pathutils.h"
#include <cmdutils.h>
-#include "lists/MinecraftVersionList.h"
+#include "logic/minecraft/MinecraftVersionList.h"
#include "logic/icons/IconList.h"
BaseInstance::BaseInstance(BaseInstancePrivate *d_in, const QString &rootDir,
@@ -58,6 +58,8 @@ BaseInstance::BaseInstance(BaseInstancePrivate *d_in, const QString &rootDir,
// Java Settings
settings().registerSetting("OverrideJava", false);
+ settings().registerSetting("OverrideJavaLocation", false);
+ settings().registerSetting("OverrideJavaArgs", false);
settings().registerOverride(globalSettings->getSetting("JavaPath"));
settings().registerOverride(globalSettings->getSetting("JvmArgs"));
diff --git a/logic/BaseInstance.h b/logic/BaseInstance.h
index 16791592..9598549b 100644
--- a/logic/BaseInstance.h
+++ b/logic/BaseInstance.h
@@ -22,9 +22,10 @@
#include <settingsobject.h>
#include "inifile.h"
-#include "lists/BaseVersionList.h"
+#include "logic/BaseVersionList.h"
#include "logic/auth/MojangAccount.h"
+class ModList;
class QDialog;
class QDir;
class Task;
@@ -89,7 +90,7 @@ public:
void setGroupInitial(QString val);
void setGroupPost(QString val);
- QStringList extraArguments() const;
+ virtual QStringList extraArguments() const;
virtual QString intendedVersionId() const = 0;
virtual bool setIntendedVersionId(QString version) = 0;
@@ -110,6 +111,19 @@ public:
virtual bool shouldUpdate() const = 0;
virtual void setShouldUpdate(bool val) = 0;
+ ////// Mod Lists //////
+ virtual std::shared_ptr<ModList> resourcePackList()
+ {
+ return nullptr;
+ }
+ virtual std::shared_ptr<ModList> texturePackList()
+ {
+ return nullptr;
+ }
+
+ /// Traits. Normally inside the version, depends on instance implementation.
+ virtual QSet <QString> traits() = 0;
+
/// Get the curent base jar of this instance. By default, it's the
/// versions/$version/$version.jar
QString baseJar() const;
@@ -169,12 +183,6 @@ public:
/// 'prepareForLaunch'
virtual void cleanupAfterRun() = 0;
- /// create a mod edit dialog for the instance
- virtual QDialog *createModEditDialog(QWidget *parent) = 0;
-
- /// is a particular action enabled with this instance selected?
- virtual bool menuActionEnabled(QString action_name) const = 0;
-
virtual QString getStatusbarDescription() = 0;
/// FIXME: this really should be elsewhere...
diff --git a/logic/BaseVersion.h b/logic/BaseVersion.h
index 43f5942a..ed63f551 100644
--- a/logic/BaseVersion.h
+++ b/logic/BaseVersion.h
@@ -16,6 +16,8 @@
#pragma once
#include <memory>
+#include <QString>
+#include <QMetaType>
/*!
* An abstract base class for versions.
@@ -52,4 +54,4 @@ struct BaseVersion
typedef std::shared_ptr<BaseVersion> BaseVersionPtr;
-Q_DECLARE_METATYPE(BaseVersionPtr) \ No newline at end of file
+Q_DECLARE_METATYPE(BaseVersionPtr)
diff --git a/logic/lists/BaseVersionList.cpp b/logic/BaseVersionList.cpp
index 6e2c5282..b34750b5 100644
--- a/logic/lists/BaseVersionList.cpp
+++ b/logic/BaseVersionList.cpp
@@ -13,7 +13,7 @@
* limitations under the License.
*/
-#include "logic/lists/BaseVersionList.h"
+#include "logic/BaseVersionList.h"
#include "logic/BaseVersion.h"
BaseVersionList::BaseVersionList(QObject *parent) : QAbstractListModel(parent)
diff --git a/logic/lists/BaseVersionList.h b/logic/BaseVersionList.h
index 21b44e8d..21b44e8d 100644
--- a/logic/lists/BaseVersionList.h
+++ b/logic/BaseVersionList.h
diff --git a/logic/InstanceFactory.cpp b/logic/InstanceFactory.cpp
index 95fd855b..c0a392e0 100644
--- a/logic/InstanceFactory.cpp
+++ b/logic/InstanceFactory.cpp
@@ -13,28 +13,26 @@
* limitations under the License.
*/
-#include "InstanceFactory.h"
-
#include <QDir>
#include <QFileInfo>
-
-#include "BaseInstance.h"
-#include "LegacyInstance.h"
-#include "LegacyFTBInstance.h"
-#include "OneSixInstance.h"
-#include "OneSixFTBInstance.h"
-#include "NostalgiaInstance.h"
-#include "OneSixInstance.h"
-#include "BaseVersion.h"
-#include "MinecraftVersion.h"
-
-#include "inifile.h"
+#include <inifile.h>
#include <inisettingsobject.h>
#include <setting.h>
-#include "pathutils.h"
+#include <pathutils.h>
#include "logger/QsLog.h"
+#include "logic/InstanceFactory.h"
+
+#include "logic/BaseInstance.h"
+#include "logic/LegacyInstance.h"
+#include "logic/LegacyFTBInstance.h"
+#include "logic/OneSixInstance.h"
+#include "logic/OneSixFTBInstance.h"
+#include "logic/OneSixInstance.h"
+#include "logic/BaseVersion.h"
+#include "logic/minecraft/MinecraftVersion.h"
+
InstanceFactory InstanceFactory::loader;
InstanceFactory::InstanceFactory() : QObject(NULL)
@@ -51,7 +49,7 @@ InstanceFactory::InstLoadError InstanceFactory::loadInstance(InstancePtr &inst,
QString inst_type = m_settings->get("InstanceType").toString();
// FIXME: replace with a map lookup, where instance classes register their types
- if (inst_type == "OneSix")
+ if (inst_type == "OneSix" || inst_type == "Nostalgia")
{
inst.reset(new OneSixInstance(instDir, m_settings, this));
}
@@ -59,10 +57,6 @@ InstanceFactory::InstLoadError InstanceFactory::loadInstance(InstancePtr &inst,
{
inst.reset(new LegacyInstance(instDir, m_settings, this));
}
- else if (inst_type == "Nostalgia")
- {
- inst.reset(new NostalgiaInstance(instDir, m_settings, this));
- }
else if (inst_type == "LegacyFTB")
{
inst.reset(new LegacyFTBInstance(instDir, m_settings, this));
@@ -98,55 +92,26 @@ InstanceFactory::InstCreateError InstanceFactory::createInstance(InstancePtr &in
if (type == NormalInst)
{
- switch (mcVer->type)
- {
- case MinecraftVersion::Legacy:
- // TODO new instance type
- m_settings->set("InstanceType", "Legacy");
- inst.reset(new LegacyInstance(instDir, m_settings, this));
- inst->setIntendedVersionId(version->descriptor());
- inst->setShouldUseCustomBaseJar(false);
- break;
- case MinecraftVersion::OneSix:
- m_settings->set("InstanceType", "OneSix");
- inst.reset(new OneSixInstance(instDir, m_settings, this));
- inst->setIntendedVersionId(version->descriptor());
- inst->setShouldUseCustomBaseJar(false);
- break;
- case MinecraftVersion::Nostalgia:
- m_settings->set("InstanceType", "Nostalgia");
- inst.reset(new NostalgiaInstance(instDir, m_settings, this));
- inst->setIntendedVersionId(version->descriptor());
- inst->setShouldUseCustomBaseJar(false);
- break;
- default:
- {