diff --git a/gate_functions.lua b/gate_functions.lua index c30a05e..484db57 100644 --- a/gate_functions.lua +++ b/gate_functions.lua @@ -114,7 +114,8 @@ local rotate_pos_displaced = function(pos, origin, axis, direction) end local get_buildable_to = function(pos) - return minetest.registered_nodes[minetest.get_node(pos).name].buildable_to + local def = minetest.registered_nodes[minetest.get_node(pos).name] + return def and def.buildable_to end @@ -290,9 +291,7 @@ local get_door_layout = function(pos, facedir, player) if not vector.equals(door_node.pos, origin) then -- There's no obstruction if the node is literally located along the rotation axis local newpos = rotate_pos_displaced(door_node.pos, origin, axis, direction) - local newnode = minetest.get_node(newpos) - local newdef = minetest.registered_nodes[newnode.name] - if not newdef.buildable_to then + if get_buildable_to(newpos) then -- check if the destination node is free. door.swings[direction] = false break