summaryrefslogtreecommitdiffstats
path: root/api/logic/minecraft/VersionFile.h
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2017-03-27 03:34:39 +0200
committerPetr Mrázek <peterix@gmail.com>2017-04-07 00:20:02 +0200
commit5fabb4f2546fa6b79a4e2c29679f506e587a0070 (patch)
treefabccd987452ce98a6b80cad96a5d19c2d24be46 /api/logic/minecraft/VersionFile.h
parent6f2a87167a13101d80d2fbc096bbb6a5eb5ab0c9 (diff)
downloadMultiMC-5fabb4f2546fa6b79a4e2c29679f506e587a0070.tar
MultiMC-5fabb4f2546fa6b79a4e2c29679f506e587a0070.tar.gz
MultiMC-5fabb4f2546fa6b79a4e2c29679f506e587a0070.tar.lz
MultiMC-5fabb4f2546fa6b79a4e2c29679f506e587a0070.tar.xz
MultiMC-5fabb4f2546fa6b79a4e2c29679f506e587a0070.zip
NOISSUE Rough refactor of ProfilePatch and VersionFile internals.
They are now distinct classes with distinct responsibilities. * ProfilePatch is an entry in MinecraftProfile and can hold VersionFile or Meta::Version. * VersionFile is the basic element that holds version information loaded from JSON. * Meta::Version is the loader class for VersionFile(s) from a server.
Diffstat (limited to 'api/logic/minecraft/VersionFile.h')
-rw-r--r--api/logic/minecraft/VersionFile.h108
1 files changed, 8 insertions, 100 deletions
diff --git a/api/logic/minecraft/VersionFile.h b/api/logic/minecraft/VersionFile.h
index dad9a057..a71c6228 100644
--- a/api/logic/minecraft/VersionFile.h
+++ b/api/logic/minecraft/VersionFile.h
@@ -8,7 +8,7 @@
#include <memory>
#include "minecraft/OpSys.h"
#include "minecraft/Rule.h"
-#include "ProfilePatch.h"
+#include "ProblemProvider.h"
#include "Library.h"
#include "JarMod.h"
@@ -18,111 +18,19 @@ struct MojangDownloadInfo;
struct MojangAssetIndexInfo;
typedef std::shared_ptr<VersionFile> VersionFilePtr;
-class VersionFile : public ProfilePatch
+class VersionFile : public ProblemProvider
{
friend class MojangVersionFormat;
friend class OneSixVersionFormat;
public: /* methods */
- virtual void applyTo(MinecraftProfile *profile) override;
- virtual bool isMinecraftVersion() override;
- virtual int getOrder() override
- {
- return order;
- }
- virtual void setOrder(int order) override
- {
- this->order = order;
- }
- virtual QString getID() override
- {
- return uid;
- }
- virtual QString getName() override
- {
- return name;
- }
- virtual QString getVersion() override
- {
- return version;
- }
- virtual QString getFilename() override
- {
- return filename;
- }
- virtual QDateTime getReleaseDateTime() override
- {
- return m_releaseTime;
- }
-
- std::shared_ptr<class VersionFile> getVersionFile() override
- {
- return std::dynamic_pointer_cast<VersionFile>(shared_from_this());
- }
-
- virtual bool isCustom() override
- {
- return !m_isVanilla;
- };
- virtual bool isCustomizable() override
- {
- return m_isCustomizable;
- }
- virtual bool isRemovable() override
- {
- return m_isRemovable;
- }
- virtual bool isRevertible() override
- {
- return m_isRevertible;
- }
- virtual bool isMoveable() override
- {
- return m_isMovable;
- }
- virtual bool isEditable() override
- {
- return isCustom();
- }
- virtual bool isVersionChangeable() override
- {
- return false;
- }
-
- void setVanilla (bool state)
- {
- m_isVanilla = state;
- }
- void setRemovable (bool state)
- {
- m_isRemovable = state;
- }
- void setRevertible (bool state)
- {
- m_isRevertible = state;
- }
- void setCustomizable (bool state)
- {
- m_isCustomizable = state;
- }
- void setMovable (bool state)
- {
- m_isMovable = state;
- }
-
+ void applyTo(MinecraftProfile *profile);
public: /* data */
- // Flags for UI and version file manipulation in general
- bool m_isVanilla = false;
- bool m_isRemovable = false;
- bool m_isRevertible = false;
- bool m_isCustomizable = false;
- bool m_isMovable = false;
-
/// MultiMC: order hint for this version file if no explicit order is set
int order = 0;
/// MultiMC: filename of the file this was loaded from
- QString filename;
+ // QString filename;
/// MultiMC: human readable name of this package
QString name;
@@ -139,13 +47,13 @@ public: /* data */
/// Mojang: used to version the Mojang version format
int minimumLauncherVersion = -1;
- /// Mojang: version of Minecraft this is
+ /// Mojang: DEPRECATED version of Minecraft this is
QString minecraftVersion;
/// Mojang: class to launch Minecraft with
QString mainClass;
- /// MultiMC: DEPRECATED class to launch legacy Minecraft with (ambed in a custom window)
+ /// MultiMC: class to launch legacy Minecraft with (embed in a custom window)
QString appletClass;
/// Mojang: Minecraft launch arguments (may contain placeholders for variable substitution)
@@ -155,10 +63,10 @@ public: /* data */
QString type;
/// Mojang: the time this version was actually released by Mojang
- QDateTime m_releaseTime;
+ QDateTime releaseTime;
/// Mojang: the time this version was last updated by Mojang
- QDateTime m_updateTime;
+ QDateTime updateTime;
/// Mojang: DEPRECATED asset group to be used with Minecraft
QString assets;