// Luanti // SPDX-License-Identifier: LGPL-2.1-or-later // Copyright (C) 2010-2018 nerzhul, Loic BLOT #pragma once #include #include #include "../activeobjectmgr.h" #include "serveractiveobject.h" namespace server { class ActiveObjectMgr final : public ::ActiveObjectMgr { public: ~ActiveObjectMgr() override; // If cb returns true, the obj will be deleted void clearIf(const std::function &cb); void step(float dtime, const std::function &f) override; bool registerObject(std::unique_ptr obj) override; void removeObject(u16 id) override; void invalidateActiveObjectObserverCaches(); void getObjectsInsideRadius(const v3f &pos, float radius, std::vector &result, std::function include_obj_cb); void getObjectsInArea(const aabb3f &box, std::vector &result, std::function include_obj_cb); void getAddedActiveObjectsAroundPos( const v3f &player_pos, const std::string &player_name, f32 radius, f32 player_radius, const std::set ¤t_objects, std::vector &added_objects); }; } // namespace server