From 280e1a2512c71ef0d38643d8b245c40b285879ae Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Sat, 31 Mar 2012 12:30:11 +0300 Subject: Allow group:groupname in ABM definition and implement minetest.hash_node_position() --- src/nodedef.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/nodedef.cpp') diff --git a/src/nodedef.cpp b/src/nodedef.cpp index 4b0c4b288..da74c8ce5 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -380,6 +380,25 @@ public: getId(name, id); return id; } + virtual void getIds(const std::string &name, std::set &result) + const + { + if(name.substr(0,6) != "group:"){ + content_t id = CONTENT_IGNORE; + if(getId(name, id)) + result.insert(id); + return; + } + std::string group = name.substr(6); + for(u16 id=0; id<=MAX_CONTENT; id++) + { + const ContentFeatures &f = m_content_features[id]; + if(f.name == "") // Quickly discard undefined nodes + continue; + if(itemgroup_get(f.groups, group) != 0) + result.insert(id); + } + } virtual const ContentFeatures& get(const std::string &name) const { content_t id = CONTENT_IGNORE; -- cgit v1.2.3