add generator 'caption' property

This commit is contained in:
MihailRis
2024-10-13 22:53:12 +03:00
parent 7c56d8fd7f
commit de00414456
11 changed files with 59 additions and 21 deletions
+33 -4
View File
@@ -54,7 +54,9 @@ static void detect_defs(
continue;
}
if (fs::is_regular_file(file) && files::is_data_file(file)) {
detected.push_back(prefix.empty() ? name : prefix + ":" + name);
auto map = files::read_object(file);
std::string id = prefix.empty() ? name : prefix + ":" + name;
detected.emplace_back(id);
} else if (fs::is_directory(file) &&
file.extension() != fs::u8path(".files")) {
detect_defs(file, name, detected);
@@ -63,11 +65,38 @@ static void detect_defs(
}
}
std::vector<std::string> ContentLoader::scanContent(
static void detect_defs_pairs(
const fs::path& folder,
const std::string& prefix,
std::vector<std::tuple<std::string, std::string>>& detected
) {
if (fs::is_directory(folder)) {
for (const auto& entry : fs::directory_iterator(folder)) {
const fs::path& file = entry.path();
std::string name = file.stem().string();
if (name[0] == '_') {
continue;
}
if (fs::is_regular_file(file) && files::is_data_file(file)) {
auto map = files::read_object(file);
std::string id = prefix.empty() ? name : prefix + ":" + name;
std::string caption = util::id_to_caption(id);
map.at("caption").get(caption);
detected.emplace_back(id, name);
} else if (fs::is_directory(file) &&
file.extension() != fs::u8path(".files")) {
detect_defs_pairs(file, name, detected);
}
}
}
}
std::vector<std::tuple<std::string, std::string>> ContentLoader::scanContent(
const ContentPack& pack, ContentType type
) {
std::vector<std::string> detected;
detect_defs(pack.folder / ContentPack::getFolderFor(type), pack.id, detected);
std::vector<std::tuple<std::string, std::string>> detected;
detect_defs_pairs(
pack.folder / ContentPack::getFolderFor(type), pack.id, detected);
return detected;
}