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
1 changed files with 16 additions and 1 deletions

View File

@ -112,7 +112,7 @@ function unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
end
-- 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)
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 })
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)
local pos = pointed_thing.under
local node = minetest.get_node_or_nil(pos)