diff options
author | Sefa Eyeoglu <contact@scrumplex.net> | 2023-01-23 23:58:52 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-23 23:58:52 +0100 |
commit | 16477a8f6c1fc646208b41b76598ce8e7a60369e (patch) | |
tree | 782055d4c36affd2b9bd84905805c94f04134590 /launcher/minecraft | |
parent | 04e4900415aa102f3ad2f40375e3b59bfc7ee9ba (diff) | |
parent | ea5020e188d7cb6d4c8dcf7f953161759ed17899 (diff) | |
download | PrismLauncher-16477a8f6c1fc646208b41b76598ce8e7a60369e.tar.gz PrismLauncher-16477a8f6c1fc646208b41b76598ce8e7a60369e.tar.bz2 PrismLauncher-16477a8f6c1fc646208b41b76598ce8e7a60369e.zip |
Merge pull request #675 from flowln/generalize_mod_model
Diffstat (limited to 'launcher/minecraft')
-rw-r--r-- | launcher/minecraft/PackProfile.cpp | 28 | ||||
-rw-r--r-- | launcher/minecraft/PackProfile.h | 4 |
2 files changed, 18 insertions, 14 deletions
diff --git a/launcher/minecraft/PackProfile.cpp b/launcher/minecraft/PackProfile.cpp index 43fa3f8d..42021b3c 100644 --- a/launcher/minecraft/PackProfile.cpp +++ b/launcher/minecraft/PackProfile.cpp @@ -55,12 +55,13 @@ #include "PackProfile_p.h" #include "ComponentUpdateTask.h" -#include "modplatform/ModAPI.h" +#include "Application.h" +#include "modplatform/ResourceAPI.h" -static const QMap<QString, ModAPI::ModLoaderType> modloaderMapping{ - {"net.minecraftforge", ModAPI::Forge}, - {"net.fabricmc.fabric-loader", ModAPI::Fabric}, - {"org.quiltmc.quilt-loader", ModAPI::Quilt} +static const QMap<QString, ResourceAPI::ModLoaderType> modloaderMapping{ + {"net.minecraftforge", ResourceAPI::Forge}, + {"net.fabricmc.fabric-loader", ResourceAPI::Fabric}, + {"org.quiltmc.quilt-loader", ResourceAPI::Quilt} }; PackProfile::PackProfile(MinecraftInstance * instance) @@ -1066,19 +1067,22 @@ void PackProfile::disableInteraction(bool disable) } } -ModAPI::ModLoaderTypes PackProfile::getModLoaders() +std::optional<ResourceAPI::ModLoaderTypes> PackProfile::getModLoaders() { - ModAPI::ModLoaderTypes result = ModAPI::Unspecified; + ResourceAPI::ModLoaderTypes result; + bool has_any_loader = false; - QMapIterator<QString, ModAPI::ModLoaderType> i(modloaderMapping); + QMapIterator<QString, ResourceAPI::ModLoaderType> i(modloaderMapping); - while (i.hasNext()) - { + while (i.hasNext()) { i.next(); - Component* c = getComponent(i.key()); - if (c != nullptr && c->isEnabled()) { + if (auto c = getComponent(i.key()); c != nullptr && c->isEnabled()) { result |= i.value(); + has_any_loader = true; } } + + if (!has_any_loader) + return {}; return result; } diff --git a/launcher/minecraft/PackProfile.h b/launcher/minecraft/PackProfile.h index 2330cca1..67b418f4 100644 --- a/launcher/minecraft/PackProfile.h +++ b/launcher/minecraft/PackProfile.h @@ -49,7 +49,7 @@ #include "BaseVersion.h" #include "MojangDownloadInfo.h" #include "net/Mode.h" -#include "modplatform/ModAPI.h" +#include "modplatform/ResourceAPI.h" class MinecraftInstance; struct PackProfileData; @@ -145,7 +145,7 @@ public: // todo(merged): is this the best approach void appendComponent(ComponentPtr component); - ModAPI::ModLoaderTypes getModLoaders(); + std::optional<ResourceAPI::ModLoaderTypes> getModLoaders(); private: void scheduleSave(); |