mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Allow group:groupname in ABM definition and implement minetest.hash_node_position()
This commit is contained in:
parent
1518b8f753
commit
280e1a2512
5 changed files with 54 additions and 15 deletions
|
@ -646,27 +646,30 @@ public:
|
|||
= abm->getRequiredNeighbors();
|
||||
for(std::set<std::string>::iterator
|
||||
i = required_neighbors_s.begin();
|
||||
i != required_neighbors_s.end(); i++){
|
||||
content_t c = ndef->getId(*i);
|
||||
if(c == CONTENT_IGNORE)
|
||||
continue;
|
||||
aabm.required_neighbors.insert(c);
|
||||
i != required_neighbors_s.end(); i++)
|
||||
{
|
||||
ndef->getIds(*i, aabm.required_neighbors);
|
||||
}
|
||||
// Trigger contents
|
||||
std::set<std::string> contents_s = abm->getTriggerContents();
|
||||
for(std::set<std::string>::iterator
|
||||
i = contents_s.begin(); i != contents_s.end(); i++){
|
||||
content_t c = ndef->getId(*i);
|
||||
if(c == CONTENT_IGNORE)
|
||||
continue;
|
||||
std::map<content_t, std::list<ActiveABM> >::iterator j;
|
||||
j = m_aabms.find(c);
|
||||
if(j == m_aabms.end()){
|
||||
std::list<ActiveABM> aabmlist;
|
||||
m_aabms[c] = aabmlist;
|
||||
i = contents_s.begin(); i != contents_s.end(); i++)
|
||||
{
|
||||
std::set<content_t> ids;
|
||||
ndef->getIds(*i, ids);
|
||||
for(std::set<content_t>::const_iterator k = ids.begin();
|
||||
k != ids.end(); k++)
|
||||
{
|
||||
content_t c = *k;
|
||||
std::map<content_t, std::list<ActiveABM> >::iterator j;
|
||||
j = m_aabms.find(c);
|
||||
if(j == m_aabms.end()){
|
||||
std::list<ActiveABM> aabmlist;
|
||||
m_aabms[c] = aabmlist;
|
||||
j = m_aabms.find(c);
|
||||
}
|
||||
j->second.push_back(aabm);
|
||||
}
|
||||
j->second.push_back(aabm);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue