expose mod Config for mod ui

This commit is contained in:
thecozies 2025-09-21 10:58:58 -05:00
parent 995cdf2ad4
commit e26f603fc2
3 changed files with 18 additions and 0 deletions

View file

@ -308,6 +308,7 @@ namespace recomp {
std::string get_mod_id(size_t mod_index);
void set_mod_index(const std::string &mod_game_id, const std::string &mod_id, size_t index);
const config::ConfigSchema &get_mod_config_schema(const std::string &mod_id) const;
config::Config *get_mod_config(const std::string &mod_id);
const std::vector<char> &get_mod_thumbnail(const std::string &mod_id) const;
void set_mod_config_value(size_t mod_index, const std::string &option_id, const config::ConfigValueVariant &value);
void set_mod_config_value(const std::string &mod_id, const std::string &option_id, const config::ConfigValueVariant &value);
@ -560,6 +561,7 @@ namespace recomp {
bool is_mod_enabled(const std::string& mod_id);
bool is_mod_auto_enabled(const std::string& mod_id);
const config::ConfigSchema &get_mod_config_schema(const std::string &mod_id);
config::Config *get_mod_config(const std::string &mod_id);
const std::vector<char> &get_mod_thumbnail(const std::string &mod_id);
void set_mod_config_value(size_t mod_index, const std::string &option_id, const config::ConfigValueVariant &value);
void set_mod_config_value(const std::string &mod_id, const std::string &option_id, const config::ConfigValueVariant &value);

View file

@ -1335,6 +1335,17 @@ const recomp::config::ConfigSchema &recomp::mods::ModContext::get_mod_config_sch
return mod.config.get_config_schema();
}
recomp::config::Config *recomp::mods::ModContext::get_mod_config(const std::string &mod_id) {
// Check that the mod exists.
auto find_it = opened_mods_by_id.find(mod_id);
if (find_it == opened_mods_by_id.end()) {
return nullptr;
}
ModHandle &mod = opened_mods[find_it->second];
return &mod.config;
}
const std::vector<char> &recomp::mods::ModContext::get_mod_thumbnail(const std::string &mod_id) const {
// Check that the mod exists.
auto find_it = opened_mods_by_id.find(mod_id);

View file

@ -549,6 +549,11 @@ const recomp::config::ConfigSchema &recomp::mods::get_mod_config_schema(const st
return mod_context->get_mod_config_schema(mod_id);
}
recomp::config::Config *recomp::mods::get_mod_config(const std::string &mod_id) {
std::lock_guard lock{ mod_context_mutex };
return mod_context->get_mod_config(mod_id);
}
const std::vector<char> &recomp::mods::get_mod_thumbnail(const std::string &mod_id) {
std::lock_guard lock{ mod_context_mutex };
return mod_context->get_mod_thumbnail(mod_id);