account for eye_offset when raycasting

This commit is contained in:
whosit 2021-05-23 19:17:38 +03:00
parent e9ae1cbcfa
commit 1e7df1f115

View File

@ -28,6 +28,11 @@ local function raycast_crosshair(player, range)
local p_pos = player:get_pos()
local p_eye_height = player:get_properties().eye_height
local p_eye_pos = { x = p_pos.x, y = p_pos.y + p_eye_height, z = p_pos.z }
-- take eye_offset into account for camera position (when sitting, etc)
local p_eye_offset = vector.multiply(player:get_eye_offset(), 0.1)
local yaw = player:get_look_horizontal()
p_eye_pos = vector.add(p_eye_pos, vector.rotate_around_axis(p_eye_offset, {x=0,y=1,z=0}, yaw))
local to = vector.add(p_eye_pos, vector.multiply(player:get_look_dir(), range))
local ray = minetest.raycast(p_eye_pos, to, point_to_objects, point_to_liquids)
local pointed_thing = ray:next()