summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkwolekr <kwolekr@minetest.net>2014-12-29 23:15:53 -0500
committerkwolekr <kwolekr@minetest.net>2014-12-29 23:15:53 -0500
commitc6df2bc42ca82eb75136112c3ad5610a42c1ea6a (patch)
tree55bc88460bef7b9a25f562fd908d02a4a6519c72
parentf12118c38b7fb209d2eaeb0bca406e06be2c9650 (diff)
downloadminetest-c6df2bc42ca82eb75136112c3ad5610a42c1ea6a.tar.gz
minetest-c6df2bc42ca82eb75136112c3ad5610a42c1ea6a.tar.bz2
minetest-c6df2bc42ca82eb75136112c3ad5610a42c1ea6a.zip
Add support back for resolving group names in NodeResolver
-rw-r--r--src/nodedef.cpp22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/nodedef.cpp b/src/nodedef.cpp
index f87daa528..f01a7e87b 100644
--- a/src/nodedef.cpp
+++ b/src/nodedef.cpp
@@ -1356,13 +1356,21 @@ bool CNodeDefManager::getIdsFromResolveInfo(NodeResolveInfo *nri,
std::string name = nri->nodenames.front();
nri->nodenames.pop_front();
- if (getId(name, c)) {
- result.push_back(c);
- } else if (listinfo.all_required) {
- errorstream << "Resolver: Failed to resolve node name '" << name
- << "'." << std::endl;
- result.push_back(listinfo.c_fallback);
- success = false;
+ if (name.substr(0,6) != "group:") {
+ if (getId(name, c)) {
+ result.push_back(c);
+ } else if (listinfo.all_required) {
+ errorstream << "Resolver: Failed to resolve node name '" << name
+ << "'." << std::endl;
+ result.push_back(listinfo.c_fallback);
+ success = false;
+ }
+ } else {
+ std::set<content_t> cids;
+ std::set<content_t>::iterator it;
+ getIds(name, cids);
+ for (it = cids.begin(); it != cids.end(); ++it)
+ result.push_back(*it);
}
}