mirror of
				https://github.com/luanti-org/luanti.git
				synced 2025-11-04 01:05:48 +01:00 
			
		
		
		
	Generate Notifier: Clear events once after all 'on generated' functions
This commit is contained in:
		@@ -585,6 +585,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));
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
 
 | 
			
		||||
@@ -1003,8 +1003,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;
 | 
			
		||||
 | 
			
		||||
@@ -1016,9 +1015,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();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -99,8 +99,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 = 0;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user