diff options
author | Dániel Juhász <juhdanad@gmail.com> | 2016-07-23 21:11:20 +0200 |
---|---|---|
committer | paramat <mat.gregory@virginmedia.com> | 2017-07-07 22:28:23 +0100 |
commit | 3caad3f3c9e319ca67d63231e8c64b2ace855fff (patch) | |
tree | f3cb283b7aa28958e2deec7c70dad3a85e1236d4 /src/clientenvironment.h | |
parent | a80ecbee1e838491343af760539a37fac4232048 (diff) | |
download | minetest-3caad3f3c9e319ca67d63231e8c64b2ace855fff.tar.gz minetest-3caad3f3c9e319ca67d63231e8c64b2ace855fff.tar.bz2 minetest-3caad3f3c9e319ca67d63231e8c64b2ace855fff.zip |
Expose getPointedThing to Lua
This commit introduces Raycast, a Lua user object, which can be
used to perform a raycast on the map. The ray is continuable, so one can
also get hidden nodes (for example to see trough glass).
Diffstat (limited to 'src/clientenvironment.h')
-rw-r--r-- | src/clientenvironment.h | 36 |
1 files changed, 3 insertions, 33 deletions
diff --git a/src/clientenvironment.h b/src/clientenvironment.h index 05ec1908f..070ff95fb 100644 --- a/src/clientenvironment.h +++ b/src/clientenvironment.h @@ -30,7 +30,6 @@ class ClientScripting; class ClientActiveObject; class GenericCAO; class LocalPlayer; -struct PointedThing; /* The client-side environment. @@ -125,44 +124,15 @@ public: std::vector<DistanceSortedActiveObject> &dest); bool hasClientEnvEvents() const { return !m_client_event_queue.empty(); } + // Get event from queue. If queue is empty, it triggers an assertion failure. ClientEnvEvent getClientEnvEvent(); - /*! - * Gets closest object pointed by the shootline. - * Returns NULL if not found. - * - * \param[in] shootline_on_map the shootline for - * the test in world coordinates - * \param[out] intersection_point the first point where - * the shootline meets the object. Valid only if - * not NULL is returned. - * \param[out] intersection_normal the normal vector of - * the intersection, pointing outwards. Zero vector if - * the shootline starts in an active object. - * Valid only if not NULL is returned. - */ - ClientActiveObject * getSelectedActiveObject( + virtual void getSelectedActiveObjects( const core::line3d<f32> &shootline_on_map, - v3f *intersection_point, - v3s16 *intersection_normal + std::vector<PointedThing> &objects ); - /*! - * Performs a raycast on the world. - * Returns the first thing the shootline meets. - * - * @param[in] shootline the shootline, starting from - * the camera position. This also gives the maximal distance - * of the search. - * @param[in] liquids_pointable if false, liquids are ignored - * @param[in] look_for_object if false, objects are ignored - */ - PointedThing getPointedThing( - core::line3d<f32> shootline, - bool liquids_pointable, - bool look_for_object); - u16 attachement_parent_ids[USHRT_MAX + 1]; const std::list<std::string> &getPlayerNames() { return m_player_names; } |