Minetest 5.9.0-dev
 
Loading...
Searching...
No Matches
activeobjectmgr.h
Go to the documentation of this file.
1/*
2Minetest
3Copyright (C) 2010-2018 nerzhul, Loic BLOT <loic.blot@unix-experience.fr>
4
5This program is free software; you can redistribute it and/or modify
6it under the terms of the GNU Lesser General Public License as published by
7the Free Software Foundation; either version 2.1 of the License, or
8(at your option) any later version.
9
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU Lesser General Public License for more details.
14
15You should have received a copy of the GNU Lesser General Public License along
16with this program; if not, write to the Free Software Foundation, Inc.,
1751 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18*/
19
20#pragma once
21
22#include <functional>
23#include <vector>
24#include "../activeobjectmgr.h"
25#include "clientobject.h"
26
27namespace client
28{
29class ActiveObjectMgr final : public ::ActiveObjectMgr<ClientActiveObject>
30{
31public:
32 ~ActiveObjectMgr() override;
33
34 void step(float dtime,
35 const std::function<void(ClientActiveObject *)> &f) override;
36 bool registerObject(std::unique_ptr<ClientActiveObject> obj) override;
37 void removeObject(u16 id) override;
38
39 void getActiveObjects(const v3f &origin, f32 max_d,
40 std::vector<DistanceSortedActiveObject> &dest);
41
45 std::vector<DistanceSortedActiveObject> getActiveSelectableObjects(const core::line3d<f32> &shootline);
46};
47} // namespace client
Definition: activeobjectmgr.h:33
Definition: clientobject.h:38
Definition: activeobjectmgr.h:30
~ActiveObjectMgr() override
Definition: activeobjectmgr.cpp:28
void removeObject(u16 id) override
Definition: activeobjectmgr.cpp:75
void step(float dtime, const std::function< void(ClientActiveObject *)> &f) override
Definition: activeobjectmgr.cpp:37
std::vector< DistanceSortedActiveObject > getActiveSelectableObjects(const core::line3d< f32 > &shootline)
Gets all CAOs whose selection boxes may intersect the shootline.
Definition: activeobjectmgr.cpp:108
void getActiveObjects(const v3f &origin, f32 max_d, std::vector< DistanceSortedActiveObject > &dest)
Definition: activeobjectmgr.cpp:90
bool registerObject(std::unique_ptr< ClientActiveObject > obj) override
Definition: activeobjectmgr.cpp:50
core::vector3df v3f
Definition: irr_v3d.h:26
Definition: activeobjectmgr.cpp:26