diff options
author | Petr Mrázek <peterix@gmail.com> | 2018-07-15 14:04:09 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2018-07-15 14:04:09 +0200 |
commit | 03280cc62e75f8073f8d3d9e9e3952acf21fa77d (patch) | |
tree | 06f7546fb4941b51ca2367d9cdb257011271452a /api/logic/minecraft/MinecraftInstance.cpp | |
parent | 128bce6acb4fa320b70e580b2d2e0db5d41db8e6 (diff) | |
download | PrismLauncher-03280cc62e75f8073f8d3d9e9e3952acf21fa77d.tar.gz PrismLauncher-03280cc62e75f8073f8d3d9e9e3952acf21fa77d.tar.bz2 PrismLauncher-03280cc62e75f8073f8d3d9e9e3952acf21fa77d.zip |
NOISSUE separate new mods model from the simple one
It should list mods in various locations...
Diffstat (limited to 'api/logic/minecraft/MinecraftInstance.cpp')
-rw-r--r-- | api/logic/minecraft/MinecraftInstance.cpp | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/api/logic/minecraft/MinecraftInstance.cpp b/api/logic/minecraft/MinecraftInstance.cpp index 0fffc99f..e9f67b31 100644 --- a/api/logic/minecraft/MinecraftInstance.cpp +++ b/api/logic/minecraft/MinecraftInstance.cpp @@ -25,7 +25,8 @@ #include "meta/Index.h" #include "meta/VersionList.h" -#include "ModList.h" +#include "SimpleModList.h" +#include "ModsModel.h" #include "WorldList.h" #include "icons/IIconList.h" @@ -178,6 +179,11 @@ QString MinecraftInstance::loaderModsDir() const return FS::PathCombine(minecraftRoot(), "mods"); } +QString MinecraftInstance::modsCacheLocation() const +{ + return FS::PathCombine(instanceRoot(), "mods.cache"); +} + QString MinecraftInstance::coreModsDir() const { return FS::PathCombine(minecraftRoot(), "coremods"); @@ -884,41 +890,51 @@ JavaVersion MinecraftInstance::getJavaVersion() const return JavaVersion(settings()->get("JavaVersion").toString()); } -std::shared_ptr<ModList> MinecraftInstance::loaderModList() const +std::shared_ptr<SimpleModList> MinecraftInstance::loaderModList() const { if (!m_loader_mod_list) { - m_loader_mod_list.reset(new ModList(loaderModsDir())); + m_loader_mod_list.reset(new SimpleModList(loaderModsDir())); } m_loader_mod_list->update(); return m_loader_mod_list; } -std::shared_ptr<ModList> MinecraftInstance::coreModList() const +std::shared_ptr<ModsModel> MinecraftInstance::modsModel() const +{ + if (!m_mods_model) + { + m_mods_model.reset(new ModsModel(loaderModsDir(), coreModsDir(), modsCacheLocation())); + } + m_mods_model->update(); + return m_mods_model; +} + +std::shared_ptr<SimpleModList> MinecraftInstance::coreModList() const { if (!m_core_mod_list) { - m_core_mod_list.reset(new ModList(coreModsDir())); + m_core_mod_list.reset(new SimpleModList(coreModsDir())); } m_core_mod_list->update(); return m_core_mod_list; } -std::shared_ptr<ModList> MinecraftInstance::resourcePackList() const +std::shared_ptr<SimpleModList> MinecraftInstance::resourcePackList() const { if (!m_resource_pack_list) { - m_resource_pack_list.reset(new ModList(resourcePacksDir())); + m_resource_pack_list.reset(new SimpleModList(resourcePacksDir())); } m_resource_pack_list->update(); return m_resource_pack_list; } -std::shared_ptr<ModList> MinecraftInstance::texturePackList() const +std::shared_ptr<SimpleModList> MinecraftInstance::texturePackList() const { if (!m_texture_pack_list) { - m_texture_pack_list.reset(new ModList(texturePacksDir())); + m_texture_pack_list.reset(new SimpleModList(texturePacksDir())); } m_texture_pack_list->update(); return m_texture_pack_list; |