summaryrefslogtreecommitdiffstats
path: root/logic/LegacyInstance.h
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2013-08-17 13:40:51 +0200
committerPetr Mrázek <peterix@gmail.com>2013-08-17 13:40:51 +0200
commit253067c782955380bbf66ac0475dc954375b1ff4 (patch)
treeca97e231fd3a764256d95b5fc8d08fc25ff72161 /logic/LegacyInstance.h
parent77e80665422c4e97e2286418ab55e20c4030023b (diff)
downloadMultiMC-253067c782955380bbf66ac0475dc954375b1ff4.tar
MultiMC-253067c782955380bbf66ac0475dc954375b1ff4.tar.gz
MultiMC-253067c782955380bbf66ac0475dc954375b1ff4.tar.lz
MultiMC-253067c782955380bbf66ac0475dc954375b1ff4.tar.xz
MultiMC-253067c782955380bbf66ac0475dc954375b1ff4.zip
Move all the things (YES. Move them.)
Also, implemented some basic modlist logic, to be wired up.
Diffstat (limited to 'logic/LegacyInstance.h')
-rw-r--r--logic/LegacyInstance.h95
1 files changed, 95 insertions, 0 deletions
diff --git a/logic/LegacyInstance.h b/logic/LegacyInstance.h
new file mode 100644
index 00000000..43a66a2b
--- /dev/null
+++ b/logic/LegacyInstance.h
@@ -0,0 +1,95 @@
+#pragma once
+
+#include "BaseInstance.h"
+
+class ModList;
+class BaseUpdate;
+
+class LegacyInstance : public BaseInstance
+{
+ Q_OBJECT
+public:
+
+ explicit LegacyInstance(const QString &rootDir, SettingsObject * settings, QObject *parent = 0);
+
+ /// Path to the instance's minecraft.jar
+ QString mcJar() const;
+
+ //! Path to the instance's mcbackup.jar
+ QString mcBackup() const;
+
+ //! Path to the instance's modlist file.
+ QString modListFile() const;
+
+ ////// Mod Lists //////
+ QSharedPointer<ModList> jarModList();
+ QSharedPointer<ModList> coreModList();
+ QSharedPointer<ModList> loaderModList();
+
+ ////// Directories //////
+ QString savesDir() const;
+ QString instModsDir() const;
+ QString binDir() const;
+ QString mlModsDir() const;
+ QString coreModsDir() const;
+ QString resourceDir() const;
+
+ /*!
+ * \brief Checks whether or not the currentVersion of the instance needs to be updated.
+ * If this returns true, updateCurrentVersion is called. In the
+ * standard instance, this is determined by checking a timestamp
+ * stored in the instance config file against the last modified time of Minecraft.jar.
+ * \return True if updateCurrentVersion() should be called.
+ */
+ bool shouldUpdateCurrentVersion() const;
+
+ /*!
+ * \brief Updates the current version.
+ * This function should first set the current version timestamp
+ * (setCurrentVersionTimestamp()) to the current time. Next, if
+ * keepCurrent is false, this function should check what the
+ * instance's current version is and call setCurrentVersion() to
+ * update it. This function will automatically be called when the
+ * instance is loaded if shouldUpdateCurrentVersion returns true.
+ * \param keepCurrent If true, only the version timestamp will be updated.
+ */
+ void updateCurrentVersion(bool keepCurrent = false);
+
+ /*!
+ * Gets the last time that the current version was checked.
+ * This is checked against the last modified time on the jar file to see if
+ * the current version needs to be checked again.
+ */
+ qint64 lastCurrentVersionUpdate() const;
+ void setLastCurrentVersionUpdate(qint64 val);
+
+ /*!
+ * Whether or not the instance's minecraft.jar needs to be rebuilt.
+ * If this is true, when the instance launches, its jar mods will be
+ * re-added to a fresh minecraft.jar file.
+ */
+ bool shouldRebuild() const;
+ void setShouldRebuild(bool val);
+
+ virtual QString currentVersionId() const;
+ virtual void setCurrentVersionId(QString val);
+
+ //! The version of LWJGL that this instance uses.
+ QString lwjglVersion() const;
+ /// st the version of LWJGL libs this instance will use
+ void setLWJGLVersion(QString val);
+
+ virtual QString intendedVersionId() const;
+ virtual bool setIntendedVersionId ( QString version );
+
+ virtual bool shouldUpdate() const;
+ virtual void setShouldUpdate(bool val);
+ virtual BaseUpdate* doUpdate();
+
+ virtual MinecraftProcess* prepareForLaunch( QString user, QString session );
+ virtual void cleanupAfterRun();
+ virtual QSharedPointer< QDialog > createModEditDialog ( QWidget* parent );
+
+protected slots:
+ virtual void jarModsChanged();
+}; \ No newline at end of file