|
1 | 1 | -- our API object
|
2 | 2 | doors = {}
|
3 | 3 |
|
4 |
| --- private data |
5 |
| -local _doors = {} |
6 |
| -_doors.registered_doors = {} |
7 |
| -_doors.registered_trapdoors = {} |
| 4 | +doors.registered_doors = {} |
| 5 | +doors.registered_trapdoors = {} |
8 | 6 |
|
9 | 7 | local function replace_old_owner_information(pos)
|
10 | 8 | local meta = minetest.get_meta(pos)
|
|
18 | 16 | -- returns an object to a door object or nil
|
19 | 17 | function doors.get(pos)
|
20 | 18 | local node_name = minetest.get_node(pos).name
|
21 |
| - if _doors.registered_doors[node_name] then |
| 19 | + if doors.registered_doors[node_name] then |
22 | 20 | -- A normal upright door
|
23 | 21 | return {
|
24 | 22 | pos = pos,
|
25 | 23 | open = function(self, player)
|
26 | 24 | if self:state() then
|
27 | 25 | return false
|
28 | 26 | end
|
29 |
| - return _doors.door_toggle(self.pos, nil, player) |
| 27 | + return doors.door_toggle(self.pos, nil, player) |
30 | 28 | end,
|
31 | 29 | close = function(self, player)
|
32 | 30 | if not self:state() then
|
33 | 31 | return false
|
34 | 32 | end
|
35 |
| - return _doors.door_toggle(self.pos, nil, player) |
| 33 | + return doors.door_toggle(self.pos, nil, player) |
36 | 34 | end,
|
37 | 35 | toggle = function(self, player)
|
38 |
| - return _doors.door_toggle(self.pos, nil, player) |
| 36 | + return doors.door_toggle(self.pos, nil, player) |
39 | 37 | end,
|
40 | 38 | state = function(self)
|
41 | 39 | local state = minetest.get_meta(self.pos):get_int("state")
|
42 | 40 | return state %2 == 1
|
43 | 41 | end
|
44 | 42 | }
|
45 |
| - elseif _doors.registered_trapdoors[node_name] then |
| 43 | + elseif doors.registered_trapdoors[node_name] then |
46 | 44 | -- A trapdoor
|
47 | 45 | return {
|
48 | 46 | pos = pos,
|
49 | 47 | open = function(self, player)
|
50 | 48 | if self:state() then
|
51 | 49 | return false
|
52 | 50 | end
|
53 |
| - return _doors.trapdoor_toggle(self.pos, nil, player) |
| 51 | + return doors.trapdoor_toggle(self.pos, nil, player) |
54 | 52 | end,
|
55 | 53 | close = function(self, player)
|
56 | 54 | if not self:state() then
|
57 | 55 | return false
|
58 | 56 | end
|
59 |
| - return _doors.trapdoor_toggle(self.pos, nil, player) |
| 57 | + return doors.trapdoor_toggle(self.pos, nil, player) |
60 | 58 | end,
|
61 | 59 | toggle = function(self, player)
|
62 |
| - return _doors.trapdoor_toggle(self.pos, nil, player) |
| 60 | + return doors.trapdoor_toggle(self.pos, nil, player) |
63 | 61 | end,
|
64 | 62 | state = function(self)
|
65 | 63 | return minetest.get_node(self.pos).name:sub(-5) == "_open"
|
@@ -130,7 +128,7 @@ local transform = {
|
130 | 128 | },
|
131 | 129 | }
|
132 | 130 |
|
133 |
| -function _doors.door_toggle(pos, node, clicker) |
| 131 | +function doors.door_toggle(pos, node, clicker) |
134 | 132 | local meta = minetest.get_meta(pos)
|
135 | 133 | node = node or minetest.get_node(pos)
|
136 | 134 | local def = minetest.registered_nodes[node.name]
|
@@ -373,10 +371,11 @@ function doors.register(name, def)
|
373 | 371 | name = name,
|
374 | 372 | sounds = { def.sound_close, def.sound_open },
|
375 | 373 | }
|
376 |
| - |
377 |
| - def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) |
378 |
| - _doors.door_toggle(pos, node, clicker) |
379 |
| - return itemstack |
| 374 | + if not def.on_rightclick then |
| 375 | + def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) |
| 376 | + doors.door_toggle(pos, node, clicker) |
| 377 | + return itemstack |
| 378 | + end |
380 | 379 | end
|
381 | 380 | def.after_dig_node = function(pos, node, meta, digger)
|
382 | 381 | minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z})
|
@@ -444,8 +443,8 @@ function doors.register(name, def)
|
444 | 443 | def.mesh = "door_b.obj"
|
445 | 444 | minetest.register_node(":" .. name .. "_b", def)
|
446 | 445 |
|
447 |
| - _doors.registered_doors[name .. "_a"] = true |
448 |
| - _doors.registered_doors[name .. "_b"] = true |
| 446 | + doors.registered_doors[name .. "_a"] = true |
| 447 | + doors.registered_doors[name .. "_b"] = true |
449 | 448 | end
|
450 | 449 |
|
451 | 450 | doors.register("door_wood", {
|
|
532 | 531 |
|
533 | 532 | ----trapdoor----
|
534 | 533 |
|
535 |
| -function _doors.trapdoor_toggle(pos, node, clicker) |
| 534 | +function doors.trapdoor_toggle(pos, node, clicker) |
536 | 535 | node = node or minetest.get_node(pos)
|
537 | 536 |
|
538 | 537 | replace_old_owner_information(pos)
|
@@ -565,7 +564,7 @@ function doors.register_trapdoor(name, def)
|
565 | 564 | local name_opened = name.."_open"
|
566 | 565 |
|
567 | 566 | def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
568 |
| - _doors.trapdoor_toggle(pos, node, clicker) |
| 567 | + doors.trapdoor_toggle(pos, node, clicker) |
569 | 568 | return itemstack
|
570 | 569 | end
|
571 | 570 |
|
@@ -668,8 +667,8 @@ function doors.register_trapdoor(name, def)
|
668 | 667 | minetest.register_node(name_opened, def_opened)
|
669 | 668 | minetest.register_node(name_closed, def_closed)
|
670 | 669 |
|
671 |
| - _doors.registered_trapdoors[name_opened] = true |
672 |
| - _doors.registered_trapdoors[name_closed] = true |
| 670 | + doors.registered_trapdoors[name_opened] = true |
| 671 | + doors.registered_trapdoors[name_closed] = true |
673 | 672 | end
|
674 | 673 |
|
675 | 674 | doors.register_trapdoor("doors:trapdoor", {
|
|
0 commit comments