aboutsummaryrefslogtreecommitdiff
path: root/src/gui/tracers.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/tracers.cpp')
-rw-r--r--src/gui/tracers.cpp19
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));
+ }
}