@@ -16,7 +16,8 @@ _doors.registered_trapdoors = {}
16
16
17
17
-- returns an object to a door object or nil
18
18
function doors .get (pos )
19
- if _doors .registered_doors [minetest .get_node (pos ).name ] then
19
+ local node_name = minetest .get_node (pos ).name
20
+ if _doors .registered_doors [node_name ] then
20
21
-- A normal upright door
21
22
return {
22
23
pos = pos ,
@@ -40,7 +41,7 @@ function doors.get(pos)
40
41
return state % 2 == 1
41
42
end
42
43
}
43
- elseif _doors .registered_trapdoors [minetest . get_node ( pos ). name ] then
44
+ elseif _doors .registered_trapdoors [node_name ] then
44
45
-- A trapdoor
45
46
return {
46
47
pos = pos ,
@@ -60,8 +61,7 @@ function doors.get(pos)
60
61
return _doors .trapdoor_toggle (self .pos , player )
61
62
end ,
62
63
state = function (self )
63
- local name = minetest .get_node (pos ).name
64
- return name :sub (- 5 ) == " _open"
64
+ return node_name :sub (- 5 ) == " _open"
65
65
end
66
66
}
67
67
else
@@ -129,15 +129,15 @@ local transform = {
129
129
},
130
130
}
131
131
132
- function _doors .door_toggle (pos , clicker )
132
+ function _doors .door_toggle (pos , node , clicker )
133
133
local meta = minetest .get_meta (pos )
134
- local def = minetest .registered_nodes [minetest . get_node ( pos ) .name ]
134
+ local def = minetest .registered_nodes [node .name ]
135
135
local name = def .door .name
136
136
137
137
local state = meta :get_string (" state" )
138
138
if state == " " then
139
139
-- fix up lvm-placed right-hinged doors, default closed
140
- if minetest . get_node ( pos ) .name :sub (- 2 ) == " _b" then
140
+ if node .name :sub (- 2 ) == " _b" then
141
141
state = 2
142
142
else
143
143
state = 0
@@ -163,7 +163,7 @@ function _doors.door_toggle(pos, clicker)
163
163
state = state + 1
164
164
end
165
165
166
- local dir = minetest . get_node ( pos ) .param2
166
+ local dir = node .param2
167
167
if state % 2 == 0 then
168
168
minetest .sound_play (def .door .sounds [1 ],
169
169
{pos = pos , gain = 0.3 , max_hear_distance = 10 })
@@ -374,7 +374,7 @@ function doors.register(name, def)
374
374
}
375
375
376
376
def .on_rightclick = function (pos , node , clicker , itemstack , pointed_thing )
377
- _doors .door_toggle (pos , clicker )
377
+ _doors .door_toggle (pos , node , clicker )
378
378
return itemstack
379
379
end
380
380
def .after_dig_node = function (pos , node , meta , digger )
507
507
508
508
---- trapdoor----
509
509
510
- function _doors .trapdoor_toggle (pos , clicker )
510
+ function _doors .trapdoor_toggle (pos , node , clicker )
511
511
if clicker and not minetest .check_player_privs (clicker , " protection_bypass" ) then
512
512
local meta = minetest .get_meta (pos )
513
513
local owner = meta :get_string (" doors_owner" )
@@ -518,7 +518,6 @@ function _doors.trapdoor_toggle(pos, clicker)
518
518
end
519
519
end
520
520
521
- local node = minetest .get_node (pos )
522
521
local def = minetest .registered_nodes [node .name ]
523
522
524
523
if string.sub (node .name , - 5 ) == " _open" then
@@ -549,7 +548,7 @@ function doors.register_trapdoor(name, def)
549
548
end
550
549
551
550
def .on_rightclick = function (pos , node , clicker , itemstack , pointed_thing )
552
- _doors .trapdoor_toggle (pos , clicker )
551
+ _doors .trapdoor_toggle (pos , node , clicker )
553
552
return itemstack
554
553
end
555
554
@@ -684,7 +683,6 @@ function doors.register_fencegate(name, def)
684
683
groups = def .groups ,
685
684
sounds = def .sounds ,
686
685
on_rightclick = function (pos , node , clicker , itemstack , pointed_thing )
687
- local node = minetest .get_node (pos )
688
686
local node_def = minetest .registered_nodes [node .name ]
689
687
minetest .swap_node (pos , {name = node_def .gate , param2 = node .param2 })
690
688
minetest .sound_play (node_def .sound , {pos = pos , gain = 0.3 ,
0 commit comments