void loadMeta(const std::string &savedir);
/*
- ActiveObjects
+ External ActiveObject interface
-------------------------------------------
*/
ActiveObjectMessage getActiveObjectMessage();
/*
- ActiveBlockModifiers
+ ActiveBlockModifiers (TODO)
-------------------------------------------
*/
void addActiveBlockModifier(ActiveBlockModifier *abm);
private:
+
+ /*
+ Internal ActiveObject interface
+ -------------------------------------------
+ */
+
+ /*
+ Add an active object to the environment.
+
+ Called by addActiveObject.
+
+ Object may be deleted by environment immediately.
+ If id of object is 0, assigns a free id to it.
+ Returns the id of the object.
+ Returns 0 if not added and thus deleted.
+ */
+ u16 addActiveObjectRaw(ServerActiveObject *object, bool set_changed);
+
/*
Remove all objects that satisfy (m_removed && m_known_by_count==0)
*/
ActiveBlockList m_active_blocks;
IntervalLimiter m_active_blocks_management_interval;
IntervalLimiter m_active_blocks_test_interval;
+ IntervalLimiter m_active_blocks_nodemetadata_interval;
// Time from the beginning of the game in seconds.
// Incremented in step().
u32 m_game_time;