]> git.lizzy.rs Git - dragonfireclient.git/commitdiff
Add support back for resolving group names in NodeResolver
authorkwolekr <kwolekr@minetest.net>
Tue, 30 Dec 2014 04:15:53 +0000 (23:15 -0500)
committerkwolekr <kwolekr@minetest.net>
Tue, 30 Dec 2014 04:15:53 +0000 (23:15 -0500)
src/nodedef.cpp

index f87daa528adfd7e394e378d7cd2da67380c6c6cb..f01a7e87b03b46e2a71f23c817f6e7e616cb3b07 100644 (file)
@@ -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);
                }
        }