diff options
Diffstat (limited to 'src/gui/tracers.cpp')
-rw-r--r-- | src/gui/tracers.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/gui/tracers.cpp b/src/gui/tracers.cpp index b1f7b15c0..ee41d0fb0 100644 --- a/src/gui/tracers.cpp +++ b/src/gui/tracers.cpp @@ -26,16 +26,17 @@ with this program; if not, write to the Free Software Foundation, Inc., void Tracers::draw(video::IVideoDriver* driver, Client *client) { ClientEnvironment &env = client->getEnv(); - LocalPlayer *player = env.getLocalPlayer(); Camera *camera = client->getCamera(); - v3f player_pos = player->getPosition(); v3f head_pos = camera->getPosition() + camera->getDirection(); - std::vector<DistanceSortedActiveObject> allObjects; - env.getActiveObjects(player_pos, 1000000, allObjects); - for (const auto &allObject : allObjects) { - ClientActiveObject *obj = allObject.obj; - if (obj->isLocalPlayer() || obj->getParent()) + auto allObjects = env.getAllActiveObjects(); + for (auto &it : allObjects) { + ClientActiveObject *obj = it.second; + if (obj->isLocalPlayer() || obj->getParent() || obj->isItem()) continue; - driver->draw3DLine(head_pos, obj->getPosition(), video::SColor(255, 255, 255, 255)); + v3f pos = obj->getPosition(); + aabb3f box; + if (obj->getSelectionBox(&box)) + pos += box.getCenter(); + driver->draw3DLine(head_pos, pos, video::SColor(255, 255, 255, 255)); } } |