Fix some face direction cases. More tests.

master
AndrejIT 2021-09-01 17:06:45 +03:00
parent 52c3270843
commit ac3de32005
2 changed files with 22 additions and 2 deletions

View File

@ -168,9 +168,9 @@ function relative_coordinate_helper.get_node_face_direction(pos)
face_vector = ({
[0] = {[0]={x=0, y=0, z=-1}, [1]={x=0, y=1, z=0}, [2]={x=0, y=-1, z=0}, [3]={x=0, y=0, z=-1}, [4]={x=0, y=0, z=-1}, [5]={x=0, y=0, z=-1}},
[1] = {[0]={x=-1, y=0, z=0}, [1]={x=-1, y=0, z=0}, [2]={x=1, y=0, z=0}, [3]={x=0, y=1, z=0}, [4]={x=0, y=-1, z=0}, [5]={x=-1, y=0, z=0}},
[1] = {[0]={x=-1, y=0, z=0}, [1]={x=-1, y=0, z=0}, [2]={x=-1, y=0, z=0}, [3]={x=0, y=1, z=0}, [4]={x=0, y=-1, z=0}, [5]={x=1, y=0, z=0}},
[2] = {[0]={x=0, y=0, z=1}, [1]={x=0, y=-1, z=0}, [2]={x=0, y=1, z=0}, [3]={x=0, y=0, z=1}, [4]={x=0, y=0, z=1}, [5]={x=0, y=0, z=1}},
[3] = {[0]={x=1, y=0, z=0}, [1]={x=1, y=0, z=0}, [2]={x=-1, y=0, z=0}, [3]={x=0, y=-1, z=0}, [4]={x=0, y=1, z=0}, [5]={x=1, y=0, z=0}},
[3] = {[0]={x=1, y=0, z=0}, [1]={x=1, y=0, z=0}, [2]={x=1, y=0, z=0}, [3]={x=0, y=-1, z=0}, [4]={x=0, y=1, z=0}, [5]={x=-1, y=0, z=0}},
})[param2_m][param2_n]
else
face_vector = vector.new(1,0,0)

View File

@ -128,6 +128,26 @@ function relative_coordinate_helper.get_pos_relative_test1()
vector.equals( get_pos_relative(pos, {x=3, y=3, z=3}, face_vector, down_vector), {x=-3, y=-3, z=-3} )
, "Test 6.c failed")
minetest.chat_send_all('Test 6.c done!')
-- 7 face to x, foot z
face_vector = {x=1, y=0, z=0}
down_vector = {x=0, y=0, z=1}
assert(
vector.equals( get_pos_relative(pos, {x=3, y=3, z=3}, face_vector, down_vector), {x=3, y=3, z=-3} )
, "Test 7 failed")
minetest.chat_send_all('Test 7 done!')
-- 8 face to x, foot up
face_vector = {x=1, y=0, z=0}
down_vector = {x=0, y=1, z=0}
assert(
vector.equals( get_pos_relative(pos, {x=1, y=-1, z=1}, face_vector, down_vector), {x=1, y=1, z=-1} ) and
vector.equals( get_pos_relative(pos, {x=1, y=-1, z=0}, face_vector, down_vector), {x=1, y=1, z=0} ) and
vector.equals( get_pos_relative(pos, {x=1, y=-1, z=-1}, face_vector, down_vector), {x=1, y=1, z=1} ) and
-- -- ...
vector.equals( get_pos_relative(pos, {x=-1, y=1, z=0}, face_vector, down_vector), {x=-1, y=-1, z=0} ) and
vector.equals( get_pos_relative(pos, {x=-1, y=1, z=-1}, face_vector, down_vector), {x=-1, y=-1, z=1} ) and
vector.equals( get_pos_relative(pos, {x=3, y=3, z=3}, face_vector, down_vector), {x=3, y=-3, z=-3} )
, "Test 8 failed")
minetest.chat_send_all('Test 8 done!')
-- 20.b face to the right, tilt to the right. different position.
face_vector = {x=0, y=0, z=-1}
down_vector = {x=1, y=0, z=0}