// Luanti // SPDX-License-Identifier: LGPL-2.1-or-later // Copyright (C) 2010-2018 nerzhul, Loic BLOT #pragma once #include #include #include "../activeobjectmgr.h" #include "clientobject.h" namespace client { class ActiveObjectMgr final : public ::ActiveObjectMgr { public: ~ActiveObjectMgr() override; void step(float dtime, const std::function &f) override; bool registerObject(std::unique_ptr obj) override; void removeObject(u16 id) override; void getActiveObjects(const v3f &origin, f32 max_d, std::vector &dest); /// Gets all CAOs whose selection boxes may intersect the @p shootline. /// @note CAOs without a selection box are not returned. /// @note Distances are along the @p shootline. std::vector getActiveSelectableObjects(const core::line3d &shootline); }; } // namespace client