Pointed_thing_to_face_pos: Avoid crash when player is inside a node (#7342)

Avoid crash in some situations when player is inside a node, causing
'above' to equal 'under'.
In this situation return 'under' which is the node position very close
to the face position that would normally be returned.
This commit is contained in:
Paramat 2018-05-16 20:49:46 +01:00 committed by GitHub
parent 04f79623a7
commit 45e48295d2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -685,6 +685,12 @@ end
-- Returns the exact coordinate of a pointed surface -- Returns the exact coordinate of a pointed surface
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
function core.pointed_thing_to_face_pos(placer, pointed_thing) function core.pointed_thing_to_face_pos(placer, pointed_thing)
-- Avoid crash in some situations when player is inside a node, causing
-- 'above' to equal 'under'.
if vector.equals(pointed_thing.above, pointed_thing.under) then
return pointed_thing.under
end
local eye_height = placer:get_properties().eye_height local eye_height = placer:get_properties().eye_height
local eye_offset_first = placer:get_eye_offset() local eye_offset_first = placer:get_eye_offset()
local node_pos = pointed_thing.under local node_pos = pointed_thing.under