add resource-aliases.json

This commit is contained in:
MihailRis
2024-10-14 07:18:24 +03:00
parent e154bd6ac1
commit 4c3ce8c174
4 changed files with 41 additions and 1 deletions
+22
View File
@@ -790,6 +790,20 @@ void ContentLoader::load() {
}
}
// Load pack resources aliases
fs::path aliasesFile = folder / fs::u8path("resource-aliases.json");
if (fs::exists(aliasesFile)) {
auto resRoot = files::read_json(aliasesFile);
for (const auto& [key, arr] : resRoot.asObject()) {
if (auto resType = ResourceType_from(key)) {
loadResourceAliases(*resType, arr);
} else {
// Ignore unknown resources
logger.warning() << "unknown resource type: " << key;
}
}
}
// Load block materials
fs::path materialsDir = folder / fs::u8path("block_materials");
if (fs::is_directory(materialsDir)) {
@@ -835,3 +849,11 @@ void ContentLoader::loadResources(ResourceType type, const dv::value& list) {
);
}
}
void ContentLoader::loadResourceAliases(ResourceType type, const dv::value& aliases) {
for (const auto& [alias, name] : aliases.asObject()) {
builder.resourceIndices[static_cast<size_t>(type)].addAlias(
name.asString(), alias
);
}
}