summaryrefslogtreecommitdiffstats
path: root/api/logic/minecraft/MinecraftInstance.h
diff options
context:
space:
mode:
Diffstat (limited to 'api/logic/minecraft/MinecraftInstance.h')
-rw-r--r--api/logic/minecraft/MinecraftInstance.h210
1 files changed, 109 insertions, 101 deletions
diff --git a/api/logic/minecraft/MinecraftInstance.h b/api/logic/minecraft/MinecraftInstance.h
index 446a39d5..a8f64109 100644
--- a/api/logic/minecraft/MinecraftInstance.h
+++ b/api/logic/minecraft/MinecraftInstance.h
@@ -1,124 +1,132 @@
#pragma once
#include "BaseInstance.h"
#include <java/JavaVersion.h>
-#include "minecraft/Mod.h"
+#include "minecraft/mod/Mod.h"
#include <QProcess>
#include <QDir>
#include "multimc_logic_export.h"
-class ModList;
+class ModFolderModel;
class WorldList;
+class GameOptions;
class LaunchStep;
class ComponentList;
class MULTIMC_LOGIC_EXPORT MinecraftInstance: public BaseInstance
{
- Q_OBJECT
+ Q_OBJECT
public:
- MinecraftInstance(SettingsObjectPtr globalSettings, SettingsObjectPtr settings, const QString &rootDir);
- virtual ~MinecraftInstance() {};
- virtual void init() override;
- virtual void saveNow();
-
- // FIXME: remove
- QString typeName() const override;
- // FIXME: remove
- QSet<QString> traits() const override;
-
- bool canEdit() const override
- {
- return true;
- }
-
- bool canExport() const override
- {
- return true;
- }
-
- ////// Directories and files //////
- QString jarModsDir() const;
- QString resourcePacksDir() const;
- QString texturePacksDir() const;
- QString loaderModsDir() const;
- QString coreModsDir() const;
- QString libDir() const;
- QString worldDir() const;
- QDir jarmodsPath() const;
- QDir librariesPath() const;
- QDir versionsPath() const;
- QString instanceConfigFolder() const override;
- QString minecraftRoot() const; // Path to the instance's minecraft directory.
- QString binRoot() const; // Path to the instance's minecraft bin directory.
- QString getNativePath() const; // where to put the natives during/before launch
- QString getLocalLibraryPath() const; // where the instance-local libraries should be
-
-
- ////// Profile management //////
- std::shared_ptr<ComponentList> getComponentList() const;
-
- ////// Mod Lists //////
- std::shared_ptr<ModList> loaderModList() const;
- std::shared_ptr<ModList> coreModList() const;
- std::shared_ptr<ModList> resourcePackList() const;
- std::shared_ptr<ModList> texturePackList() const;
- std::shared_ptr<WorldList> worldList() const;
-
-
- ////// Launch stuff //////
- shared_qobject_ptr<Task> createUpdateTask(Net::Mode mode) override;
- std::shared_ptr<LaunchTask> createLaunchTask(AuthSessionPtr account) override;
- QStringList extraArguments() const override;
- QStringList verboseDescription(AuthSessionPtr session) override;
- QList<Mod> getJarMods() const;
- QString createLaunchScript(AuthSessionPtr session);
- /// get arguments passed to java
- QStringList javaArguments() const;
-
- /// get variables for launch command variable substitution/environment
- QMap<QString, QString> getVariables() const override;
-
- /// create an environment for launching processes
- QProcessEnvironment createEnvironment() override;
-
- /// guess log level from a line of minecraft log
- MessageLevel::Enum guessLevel(const QString &line, MessageLevel::Enum level) override;
-
- IPathMatcher::Ptr getLogFileMatcher() override;
-
- QString getLogFileRoot() override;
-
- QString getStatusbarDescription() override;
-
- // FIXME: remove
- virtual QStringList getClassPath() const;
- // FIXME: remove
- virtual QStringList getNativeJars() const;
- // FIXME: remove
- virtual QString getMainClass() const;
-
- // FIXME: remove
- virtual QStringList processMinecraftArgs(AuthSessionPtr account) const;
-
- virtual JavaVersion getJavaVersion() const;
-
-signals:
- void versionReloaded();
+ MinecraftInstance(SettingsObjectPtr globalSettings, SettingsObjectPtr settings, const QString &rootDir);
+ virtual ~MinecraftInstance() {};
+ virtual void saveNow() override;
+
+ // FIXME: remove
+ QString typeName() const override;
+ // FIXME: remove
+ QSet<QString> traits() const override;
+
+ bool canEdit() const override
+ {
+ return true;
+ }
+
+ bool canExport() const override
+ {
+ return true;
+ }
+
+ ////// Directories and files //////
+ QString jarModsDir() const;
+ QString resourcePacksDir() const;
+ QString texturePacksDir() const;
+ QString loaderModsDir() const;
+ QString coreModsDir() const;
+ QString modsCacheLocation() const;
+ QString libDir() const;
+ QString worldDir() const;
+ QString resourcesDir() const;
+ QDir jarmodsPath() const;
+ QDir librariesPath() const;
+ QDir versionsPath() const;
+ QString instanceConfigFolder() const override;
+
+ // Path to the instance's minecraft directory.
+ QString gameRoot() const override;
+
+ // Path to the instance's minecraft bin directory.
+ QString binRoot() const;
+
+ // where to put the natives during/before launch
+ QString getNativePath() const;
+
+ // where the instance-local libraries should be
+ QString getLocalLibraryPath() const;
+
+
+ ////// Profile management //////
+ std::shared_ptr<ComponentList> getComponentList() const;
+
+ ////// Mod Lists //////
+ std::shared_ptr<ModFolderModel> loaderModList() const;
+ std::shared_ptr<ModFolderModel> coreModList() const;
+ std::shared_ptr<ModFolderModel> resourcePackList() const;
+ std::shared_ptr<ModFolderModel> texturePackList() const;
+ std::shared_ptr<WorldList> worldList() const;
+ std::shared_ptr<GameOptions> gameOptionsModel() const;
+
+ ////// Launch stuff //////
+ shared_qobject_ptr<Task> createUpdateTask(Net::Mode mode) override;
+ shared_qobject_ptr<LaunchTask> createLaunchTask(AuthSessionPtr account) override;
+ QStringList extraArguments() const override;
+ QStringList verboseDescription(AuthSessionPtr session) override;
+ QList<Mod> getJarMods() const;
+ QString createLaunchScript(AuthSessionPtr session);
+ /// get arguments passed to java
+ QStringList javaArguments() const;
+
+ /// get variables for launch command variable substitution/environment
+ QMap<QString, QString> getVariables() const override;
+
+ /// create an environment for launching processes
+ QProcessEnvironment createEnvironment() override;
+
+ /// guess log level from a line of minecraft log
+ MessageLevel::Enum guessLevel(const QString &line, MessageLevel::Enum level) override;
+
+ IPathMatcher::Ptr getLogFileMatcher() override;
+
+ QString getLogFileRoot() override;
+
+ QString getStatusbarDescription() override;
+
+ // FIXME: remove
+ virtual QStringList getClassPath() const;
+ // FIXME: remove
+ virtual QStringList getNativeJars() const;
+ // FIXME: remove
+ virtual QString getMainClass() const;
+
+ // FIXME: remove
+ virtual QStringList processMinecraftArgs(AuthSessionPtr account) const;
+
+ virtual JavaVersion getJavaVersion() const;
protected:
- QMap<QString, QString> createCensorFilterFromSession(AuthSessionPtr session);
- QStringList validLaunchMethods();
- QString launchMethod();
+ QMap<QString, QString> createCensorFilterFromSession(AuthSessionPtr session);
+ QStringList validLaunchMethods();
+ QString launchMethod();
private:
- QString prettifyTimeDuration(int64_t duration);
+ QString prettifyTimeDuration(int64_t duration);
protected: // data
- std::shared_ptr<ComponentList> m_components;
- mutable std::shared_ptr<ModList> m_loader_mod_list;
- mutable std::shared_ptr<ModList> m_core_mod_list;
- mutable std::shared_ptr<ModList> m_resource_pack_list;
- mutable std::shared_ptr<ModList> m_texture_pack_list;
- mutable std::shared_ptr<WorldList> m_world_list;
+ std::shared_ptr<ComponentList> m_components;
+ mutable std::shared_ptr<ModFolderModel> m_loader_mod_list;
+ mutable std::shared_ptr<ModFolderModel> m_core_mod_list;
+ mutable std::shared_ptr<ModFolderModel> m_resource_pack_list;
+ mutable std::shared_ptr<ModFolderModel> m_texture_pack_list;
+ mutable std::shared_ptr<WorldList> m_world_list;
+ mutable std::shared_ptr<GameOptions> m_game_options;
};
typedef std::shared_ptr<MinecraftInstance> MinecraftInstancePtr;