-- returns an object to a door object or nil
function doors.get(pos)
- if _doors.registered_doors[minetest.get_node(pos).name] then
+ local node_name = minetest.get_node(pos).name
+ if _doors.registered_doors[node_name] then
-- A normal upright door
return {
pos = pos,
return state %2 == 1
end
}
- elseif _doors.registered_trapdoors[minetest.get_node(pos).name] then
+ elseif _doors.registered_trapdoors[node_name] then
-- A trapdoor
return {
pos = pos,
return _doors.trapdoor_toggle(self.pos, player)
end,
state = function(self)
- local name = minetest.get_node(pos).name
- return name:sub(-5) == "_open"
+ return node_name:sub(-5) == "_open"
end
}
else
},
}
-function _doors.door_toggle(pos, clicker)
+function _doors.door_toggle(pos, node, clicker)
local meta = minetest.get_meta(pos)
- local def = minetest.registered_nodes[minetest.get_node(pos).name]
+ local def = minetest.registered_nodes[node.name]
local name = def.door.name
local state = meta:get_string("state")
if state == "" then
-- fix up lvm-placed right-hinged doors, default closed
- if minetest.get_node(pos).name:sub(-2) == "_b" then
+ if node.name:sub(-2) == "_b" then
state = 2
else
state = 0
state = state + 1
end
- local dir = minetest.get_node(pos).param2
+ local dir = node.param2
if state % 2 == 0 then
minetest.sound_play(def.door.sounds[1],
{pos = pos, gain = 0.3, max_hear_distance = 10})
}
def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
- _doors.door_toggle(pos, clicker)
+ _doors.door_toggle(pos, node, clicker)
return itemstack
end
def.after_dig_node = function(pos, node, meta, digger)
----trapdoor----
-function _doors.trapdoor_toggle(pos, clicker)
+function _doors.trapdoor_toggle(pos, node, clicker)
if clicker and not minetest.check_player_privs(clicker, "protection_bypass") then
local meta = minetest.get_meta(pos)
local owner = meta:get_string("doors_owner")
end
end
- local node = minetest.get_node(pos)
local def = minetest.registered_nodes[node.name]
if string.sub(node.name, -5) == "_open" then
end
def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
- _doors.trapdoor_toggle(pos, clicker)
+ _doors.trapdoor_toggle(pos, node, clicker)
return itemstack
end
groups = def.groups,
sounds = def.sounds,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
- local node = minetest.get_node(pos)
local node_def = minetest.registered_nodes[node.name]
minetest.swap_node(pos, {name = node_def.gate, param2 = node.param2})
minetest.sound_play(node_def.sound, {pos = pos, gain = 0.3,