factor out player_get_eye_pos(player)
This commit is contained in:
parent
1e7df1f115
commit
eb3ab60383
15
init.lua
15
init.lua
@ -23,16 +23,23 @@ function round (x)
|
||||
end
|
||||
end
|
||||
|
||||
-- return first thing player is pointing at
|
||||
local function raycast_crosshair(player, range)
|
||||
|
||||
-- get actual eye_pos of the player (including eye_offset)
|
||||
local function player_get_eye_pos(player)
|
||||
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)
|
||||
p_pos.y = p_pos.y + p_eye_height
|
||||
local p_eye_pos = p_pos
|
||||
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))
|
||||
return p_eye_pos
|
||||
end
|
||||
|
||||
|
||||
-- return first thing player is pointing at
|
||||
local function raycast_crosshair(player, range)
|
||||
local p_eye_pos = player_get_eye_pos(player)
|
||||
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()
|
||||
|
Loading…
Reference in New Issue
Block a user