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 "serveractiveobject.h"
26
27namespace server
28{
29class ActiveObjectMgr final : public ::ActiveObjectMgr<ServerActiveObject>
30{
31public:
32 ~ActiveObjectMgr() override;
33
34 // If cb returns true, the obj will be deleted
35 void clearIf(const std::function<bool(ServerActiveObject *, u16)> &cb);
36 void step(float dtime,
37 const std::function<void(ServerActiveObject *)> &f) override;
38 bool registerObject(std::unique_ptr<ServerActiveObject> obj) override;
39 void removeObject(u16 id) override;
40
41 void getObjectsInsideRadius(const v3f &pos, float radius,
42 std::vector<ServerActiveObject *> &result,
43 std::function<bool(ServerActiveObject *obj)> include_obj_cb);
44 void getObjectsInArea(const aabb3f &box,
45 std::vector<ServerActiveObject *> &result,
46 std::function<bool(ServerActiveObject *obj)> include_obj_cb);
47
48 void getAddedActiveObjectsAroundPos(v3f player_pos, f32 radius,
49 f32 player_radius, const std::set<u16> &current_objects,
50 std::vector<u16> &added_objects);
51};
52} // namespace server
Definition: activeobjectmgr.h:33
Definition: serveractiveobject.h:55
Definition: activeobjectmgr.h:30
~ActiveObjectMgr() override
Definition: activeobjectmgr.cpp:28
void getObjectsInArea(const aabb3f &box, std::vector< ServerActiveObject * > &result, std::function< bool(ServerActiveObject *obj)> include_obj_cb)
Definition: activeobjectmgr.cpp:139
void step(float dtime, const std::function< void(ServerActiveObject *)> &f) override
Definition: activeobjectmgr.cpp:49
void getObjectsInsideRadius(const v3f &pos, float radius, std::vector< ServerActiveObject * > &result, std::function< bool(ServerActiveObject *obj)> include_obj_cb)
Definition: activeobjectmgr.cpp:121
void removeObject(u16 id) override
Definition: activeobjectmgr.cpp:108
void clearIf(const std::function< bool(ServerActiveObject *, u16)> &cb)
Definition: activeobjectmgr.cpp:37
bool registerObject(std::unique_ptr< ServerActiveObject > obj) override
Definition: activeobjectmgr.cpp:64
void getAddedActiveObjectsAroundPos(v3f player_pos, f32 radius, f32 player_radius, const std::set< u16 > &current_objects, std::vector< u16 > &added_objects)
Definition: activeobjectmgr.cpp:156
core::aabbox3d< f32 > aabb3f
Definition: irr_aabb3d.h:26
core::vector3df v3f
Definition: irr_v3d.h:26
Definition: activeobjectmgr.cpp:26