Screwdriver: disallow rotation with `on_rotate = false`
authorTim <t4im@users.noreply.github.com>
Fri, 5 Aug 2016 10:14:33 +0000 (12:14 +0200)
committerrubenwardy <rubenwardy@gmail.com>
Fri, 5 Aug 2016 19:41:24 +0000 (20:41 +0100)
Other screwdriver mods, or mods that cause rotation, might operate without the screwdriver mod loaded and have `screwdriver.disallow` unavailable.
This allows nodes to default to full-disallow rather than full-rotation in such a situation.

game_api.txt
mods/screwdriver/init.lua

index 581d76ccf8dc4245b879ce25e262c173e203a714..2f0715f8d57d1bd9c16e1f2dbb63f3fc4b7babb2 100644 (file)
@@ -348,7 +348,7 @@ To use it, add the `on_screwdriver` function to the node definition.
  * `new_param2` the new value of param2 that would have been set if on_rotate wasn't there
  * return value: false to disallow rotation, nil to keep default behaviour, true to allow
        it but to indicate that changed have already been made (so the screwdriver will wear out)
- * use `on_rotate = screwdriver.disallow` to always disallow rotation
+ * use `on_rotate = false` to always disallow rotation
  * use `on_rotate = screwdriver.rotate_simple` to allow only face rotation
 
 
index 5e6df62f0d3b64d129b7124673feef927be940d5..e73b618fb8c37ac6d02f00101632480e1d8d8e0a 100644 (file)
@@ -64,6 +64,7 @@ screwdriver.handler = function(itemstack, user, pointed_thing, mode, uses)
                end
        else
                if not ndef or not ndef.paramtype2 == "facedir" or
+                               ndef.on_rotate == false or
                                (ndef.drawtype == "nodebox" and
                                not ndef.node_box.type == "fixed") or
                                node.param2 == nil then