add resource-aliases.json
This commit is contained in:
@@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user