mirror of
https://github.com/luanti-org/luanti.git
synced 2025-07-02 16:38:41 +00:00
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).
This commit is contained in:
parent
a80ecbee1e
commit
3caad3f3c9
25 changed files with 671 additions and 313 deletions
|
@ -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; }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue