diff options
author | Loïc Blot <nerzhul@users.noreply.github.com> | 2018-12-13 20:18:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-13 20:18:54 +0100 |
commit | eda35100b6c6f7d9b01c257557147545b563dc74 (patch) | |
tree | e70929e401c91b4af4a40954c4af45ef59708832 /src/client/clientenvironment.h | |
parent | 839e935ba0572c592a791cc4dd4df4a9f6d2d260 (diff) | |
download | minetest-eda35100b6c6f7d9b01c257557147545b563dc74.tar.gz minetest-eda35100b6c6f7d9b01c257557147545b563dc74.tar.bz2 minetest-eda35100b6c6f7d9b01c257557147545b563dc74.zip |
Add an activeobject manager to hold active objects (#7939)
* Add an activeobject manager to hold active objects
* Add unittests
Diffstat (limited to 'src/client/clientenvironment.h')
-rw-r--r-- | src/client/clientenvironment.h | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/client/clientenvironment.h b/src/client/clientenvironment.h index 606070e3a..d167902d1 100644 --- a/src/client/clientenvironment.h +++ b/src/client/clientenvironment.h @@ -23,6 +23,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include <ISceneManager.h> #include "clientobject.h" #include "util/numeric.h" +#include "activeobjectmgr.h" class ClientSimpleObject; class ClientMap; @@ -87,7 +88,10 @@ public: */ GenericCAO* getGenericCAO(u16 id); - ClientActiveObject* getActiveObject(u16 id); + ClientActiveObject* getActiveObject(u16 id) + { + return m_ao_manager.getActiveObject(id); + } /* Adds an active object to the environment. @@ -100,7 +104,10 @@ public: u16 addActiveObject(ClientActiveObject *object); void addActiveObject(u16 id, u8 type, const std::string &init_data); - void removeActiveObject(u16 id); + void removeActiveObject(u16 id) + { + m_ao_manager.removeObject(id); + } void processActiveObjectMessage(u16 id, const std::string &data); @@ -115,8 +122,11 @@ public: */ // Get all nearby objects - void getActiveObjects(v3f origin, f32 max_d, - std::vector<DistanceSortedActiveObject> &dest); + void getActiveObjects(const v3f &origin, f32 max_d, + std::vector<DistanceSortedActiveObject> &dest) + { + return m_ao_manager.getActiveObjects(origin, max_d, dest); + } bool hasClientEnvEvents() const { return !m_client_event_queue.empty(); } @@ -142,7 +152,7 @@ private: ITextureSource *m_texturesource; Client *m_client; ClientScripting *m_script = nullptr; - ClientActiveObjectMap m_active_objects; + client::ActiveObjectMgr m_ao_manager; std::vector<ClientSimpleObject*> m_simple_objects; std::queue<ClientEnvEvent> m_client_event_queue; IntervalLimiter m_active_object_light_update_interval; |