Verify node type is facedir.
authorAuke Kok <sofar@foo-projects.org>
Thu, 24 Dec 2015 20:41:52 +0000 (12:41 -0800)
committerparamat <mat.gregory@virginmedia.com>
Fri, 25 Dec 2015 15:37:17 +0000 (15:37 +0000)
This prevents nodes that are not of the "facedir" paramtype2,
as these are generally not expected to be able to rotate. Mods
and other methods may still manipulate param2 of these nodes
as expected.

Addresses #712

mods/screwdriver/init.lua

index 0c77754e40a49a7ad82a056329ac46f79d97d465..34b4b4a8f2ece8a1a2fc25f3c0ce853c34457c06 100644 (file)
@@ -35,6 +35,10 @@ local function screwdriver_handler(itemstack, user, pointed_thing, mode)
 
        local node = minetest.get_node(pos)
        local ndef = minetest.registered_nodes[node.name]
+       -- verify node is facedir (expected to be rotatable)
+       if ndef.paramtype2 ~= "facedir" then
+               return
+       end
        -- Compute param2
        local rotationPart = node.param2 % 32 -- get first 4 bits
        local preservePart = node.param2 - rotationPart