From 295cd027f288e48c0809a9b6d4c3626e15f1b993 Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz Date: Sat, 18 Feb 2017 13:00:06 -0500 Subject: [PATCH] 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. --- init.lua | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index bc8234f..6b5ed13 100644 --- a/init.lua +++ b/init.lua @@ -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)