diff options
Diffstat (limited to 'src/gui/tracers.cpp')
-rw-r--r-- | src/gui/tracers.cpp | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/gui/tracers.cpp b/src/gui/tracers.cpp index 6bcbff546..34a6101ea 100644 --- a/src/gui/tracers.cpp +++ b/src/gui/tracers.cpp @@ -17,10 +17,25 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ +#include <vector> +#include "client/client.h" +#include "client/camera.h" #include "tracers.h" #include "constants.h" -void Tracers::draw(video::IVideoDriver* driver) +void Tracers::draw(video::IVideoDriver* driver, Client *client) { - driver->draw3DLine(v3f(0, 0, 0), v3f(1000, 1000, 1000) * BS, video::SColor(255, 0, 0, 0)); + ClientEnvironment &env = client->getEnv(); + LocalPlayer *player = env.getLocalPlayer(); + Camera *camera = client->getCamera(); + v3f player_pos = camera->getPosition() + camera->getDirection(); + v3f head_pos = player_pos; + std::vector<DistanceSortedActiveObject> allObjects; + env.getActiveObjects(player_pos, 1000000, allObjects); + for (const auto &allObject : allObjects) { + ClientActiveObject *obj = allObject.obj; + if (obj->isLocalPlayer()) + continue; + driver->draw3DLine(head_pos, obj->getPosition(), video::SColor(255, 255, 255, 255)); + } } |