diff options
author | flow <thiagodonato300@gmail.com> | 2022-04-17 09:30:32 -0300 |
---|---|---|
committer | flow <flowlnlnln@gmail.com> | 2022-05-23 14:42:28 -0300 |
commit | 23febc6d94bcc5903a9863ba7b854b5091b0813b (patch) | |
tree | 102512acb5c2ec7fefdec089ae4c7829fcbee62b /launcher/minecraft/mod/Mod.h | |
parent | fab4a7a6029beb60bade312ee89e649202d178de (diff) | |
download | PrismLauncher-23febc6d94bcc5903a9863ba7b854b5091b0813b.tar.gz PrismLauncher-23febc6d94bcc5903a9863ba7b854b5091b0813b.tar.bz2 PrismLauncher-23febc6d94bcc5903a9863ba7b854b5091b0813b.zip |
feat: cache metadata in ModDetails
Allows for more easy access to the metadata by outside entities
Diffstat (limited to 'launcher/minecraft/mod/Mod.h')
-rw-r--r-- | launcher/minecraft/mod/Mod.h | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/launcher/minecraft/mod/Mod.h b/launcher/minecraft/mod/Mod.h index fef8cbe4..0d49d94b 100644 --- a/launcher/minecraft/mod/Mod.h +++ b/launcher/minecraft/mod/Mod.h @@ -18,7 +18,6 @@ #include <QDateTime> #include <QFileInfo> #include <QList> -#include <memory> #include "ModDetails.h" #include "minecraft/mod/MetadataHandler.h" @@ -55,6 +54,9 @@ public: QString description() const; QStringList authors() const; + const std::shared_ptr<Metadata::ModStruct> metadata() const { return details().metadata; }; + std::shared_ptr<Metadata::ModStruct> metadata() { return m_localDetails->metadata; }; + bool enable(bool value); // delete all the files of this mod @@ -71,11 +73,7 @@ public: m_resolving = resolving; m_resolutionTicket = resolutionTicket; } - void finishResolvingWithDetails(std::shared_ptr<ModDetails> details){ - m_resolving = false; - m_resolved = true; - m_localDetails = details; - } + void finishResolvingWithDetails(std::shared_ptr<ModDetails> details); protected: QFileInfo m_file; @@ -86,6 +84,10 @@ protected: QString m_name; ModType m_type = MOD_UNKNOWN; bool m_from_metadata = false; + + /* If the mod has metadata, this will be filled in the constructor, and passed to + * the ModDetails when calling finishResolvingWithDetails */ + std::shared_ptr<Metadata::ModStruct> m_temp_metadata; std::shared_ptr<ModDetails> m_localDetails; bool m_enabled = true; |