add on_rotate handler

to correct rotation for "fake wallmounted" nodes so that they always appear
to be on the floor, pointing at one of the four NSEW directions.
This commit is contained in:
Vanessa Ezekowitz 2017-02-18 13:00:06 -05:00
parent aacb377f8c
commit 295cd027f2

@ -112,7 +112,7 @@ function unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
end end
-- use this when you have a "wallmounted" node that should never be oriented -- use this when you have a "wallmounted" node that should never be oriented
-- to floor or ceiling -- to floor or ceiling...
function unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) function unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
@ -122,6 +122,21 @@ function unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
minetest.swap_node(pos, { name = node.name, param2 = fdir }) minetest.swap_node(pos, { name = node.name, param2 = fdir })
end end
-- ... and use this one to force that kind of node off of floor/ceiling
-- orientation after the screwdriver rotates it.
function unifieddyes.fix_after_screwdriver_nsew(pos, node, user, mode, new_param2)
local new_fdir = new_param2 % 8
local color = new_param2 - new_fdir
print(new_fdir)
if new_fdir < 2 then
new_fdir = 2
minetest.swap_node(pos, { name = node.name, param2 = new_fdir + color })
return true
end
end
function unifieddyes.select_node(pointed_thing) function unifieddyes.select_node(pointed_thing)
local pos = pointed_thing.under local pos = pointed_thing.under
local node = minetest.get_node_or_nil(pos) local node = minetest.get_node_or_nil(pos)