1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-08-01 17:38:41 +00:00
luanti/src/client/activeobjectmgr.h

33 lines
996 B
C
Raw Normal View History

// Luanti
// SPDX-License-Identifier: LGPL-2.1-or-later
// Copyright (C) 2010-2018 nerzhul, Loic BLOT <loic.blot@unix-experience.fr>
#pragma once
#include <functional>
#include <vector>
#include "../activeobjectmgr.h"
#include "clientobject.h"
namespace client
{
2023-10-09 17:13:04 +02:00
class ActiveObjectMgr final : public ::ActiveObjectMgr<ClientActiveObject>
{
public:
2023-10-09 17:13:04 +02:00
~ActiveObjectMgr() override;
void step(float dtime,
const std::function<void(ClientActiveObject *)> &f) override;
2023-10-09 17:13:04 +02:00
bool registerObject(std::unique_ptr<ClientActiveObject> obj) override;
void removeObject(u16 id) override;
void getActiveObjects(const v3f &origin, f32 max_d,
std::vector<DistanceSortedActiveObject> &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<DistanceSortedActiveObject> getActiveSelectableObjects(const core::line3d<f32> &shootline);
};
} // namespace client