Generate Notifier: Clear events once after all 'on generated' functions
This commit is contained in:
parent
c40f535df8
commit
a6b9acb7af
|
@ -570,6 +570,12 @@ MapBlock *EmergeThread::finishGen(v3s16 pos, BlockMakeData *bmdata,
|
|||
m_server->setAsyncFatalError("Lua: finishGen" + std::string(e.what()));
|
||||
}
|
||||
|
||||
/*
|
||||
Clear generate notifier events
|
||||
*/
|
||||
Mapgen *mg = m_emerge->getCurrentMapgen();
|
||||
mg->gennotify.clearEvents();
|
||||
|
||||
EMERGE_DBG_OUT("ended up with: " << analyze_block(block));
|
||||
|
||||
/*
|
||||
|
|
|
@ -982,8 +982,7 @@ bool GenerateNotifier::addEvent(GenNotifyType type, v3s16 pos, u32 id)
|
|||
|
||||
|
||||
void GenerateNotifier::getEvents(
|
||||
std::map<std::string, std::vector<v3s16> > &event_map,
|
||||
bool peek_events)
|
||||
std::map<std::string, std::vector<v3s16> > &event_map)
|
||||
{
|
||||
std::list<GenNotifyEvent>::iterator it;
|
||||
|
||||
|
@ -995,9 +994,12 @@ void GenerateNotifier::getEvents(
|
|||
|
||||
event_map[name].push_back(gn.pos);
|
||||
}
|
||||
}
|
||||
|
||||
if (!peek_events)
|
||||
m_notify_events.clear();
|
||||
|
||||
void GenerateNotifier::clearEvents()
|
||||
{
|
||||
m_notify_events.clear();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -101,8 +101,8 @@ public:
|
|||
void setNotifyOnDecoIds(std::set<u32> *notify_on_deco_ids);
|
||||
|
||||
bool addEvent(GenNotifyType type, v3s16 pos, u32 id=0);
|
||||
void getEvents(std::map<std::string, std::vector<v3s16> > &event_map,
|
||||
bool peek_events=false);
|
||||
void getEvents(std::map<std::string, std::vector<v3s16> > &event_map);
|
||||
void clearEvents();
|
||||
|
||||
private:
|
||||
u32 m_notify_on;
|
||||
|
|
Loading…
Reference in New Issue