From 45b40def29d70fdc08b66bf5a06ab3e45bf61f1b Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Sat, 9 Oct 2021 12:30:30 +0200 Subject: [PATCH] Add back trapdoor on_rotate handler --- mods/doors/api.lua | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/mods/doors/api.lua b/mods/doors/api.lua index fb40fbe..34d8135 100644 --- a/mods/doors/api.lua +++ b/mods/doors/api.lua @@ -364,7 +364,34 @@ local function on_rotate_door( pos, node, player, mode ) return false end -local on_rotate_trapdoor = function ( ) end +local on_rotate_trapdoor +if minetest.get_modpath("screwdriver") then + on_rotate_trapdoor = function(pos, node, user, mode, param2) + -- Flip trapdoor vertically + if mode == screwdriver.ROTATE_AXIS then + local minor = node.param2 + if node.param2 >= 20 then + minor = node.param2 - 20 + if minor == 3 then + minor = 1 + elseif minor == 1 then + minor = 3 + end + node.param2 = minor + else + if minor == 3 then + minor = 1 + elseif minor == 1 then + minor = 3 + end + node.param2 = minor + node.param2 = node.param2 + 20 + end + minetest.set_node(pos, node) + return true + end + end +end --------------------------------- -- doors.get_door_or_nil( ) @@ -808,6 +835,8 @@ function doors.register_trapdoor( name, def ) return minetest.item_place(itemstack, placer, pointed_thing, param2) end + def.on_rotate = on_rotate_trapdoor + if def.protected then def.can_dig = function ( pos, player ) local player_name = player:get_player_name( )