diff --git a/basis/command.lua b/basis/command.lua index 98ac92a..4ebea9d 100644 --- a/basis/command.lua +++ b/basis/command.lua @@ -217,17 +217,26 @@ function techage.add_node(pos, name, is_ta2) return "-" end local key = minetest.hash_node_position(pos) - return NumbersToBeRecycled[key] or get_number(pos, true) + local num = NumbersToBeRecycled[key] + if num then + backend.set_nodepos(num, pos) + NumbersToBeRecycled[key] = nil + return num + end + return get_number(pos, true) end -- Function removes the node from the techage lists. function techage.remove_node(pos, oldnode, oldmetadata) - local number = oldmetadata and oldmetadata.fields and oldmetadata.fields.node_number + local number = oldmetadata and oldmetadata.fields and oldmetadata.fields.node_number or oldmetadata.fields.number + print("number1", dump(oldmetadata)) number = number or get_number(pos) + print("number2", number) if number and tonumber(number) then local key = minetest.hash_node_position(pos) NumbersToBeRecycled[key] = number NodeInfoCache[number] = nil + print("number3", number) end if oldnode and item_handling_node(oldnode.name) then Tube:after_dig_node(pos) diff --git a/icta_controller/controller.lua b/icta_controller/controller.lua index a41d1c1..a1e6253 100644 --- a/icta_controller/controller.lua +++ b/icta_controller/controller.lua @@ -385,13 +385,9 @@ minetest.register_node("techage:ta4_icta_controller", { on_receive_fields = on_receive_fields, - on_dig = function(pos, node, puncher, pointed_thing) - if minetest.is_protected(pos, puncher:get_player_name()) then - return - end - - techage.remove_node(pos) - minetest.node_dig(pos, node, puncher, pointed_thing) + after_dig_node = function(pos, oldnode, oldmetadata) + techage.remove_node(pos, oldnode, oldmetadata) + techage.del_mem(pos) end, on_timer = on_timer, diff --git a/logic/sequencer.lua b/logic/sequencer.lua index 10360a4..f62706b 100644 --- a/logic/sequencer.lua +++ b/logic/sequencer.lua @@ -222,16 +222,17 @@ minetest.register_node("techage:ta3_sequencer", { on_receive_fields = on_receive_fields, - on_dig = function(pos, node, puncher, pointed_thing) + can_dig = function(pos, puncher) if minetest.is_protected(pos, puncher:get_player_name()) then - return + return false end local nvm = techage.get_nvm(pos) - if not nvm.running then - techage.remove_node(pos) - minetest.node_dig(pos, node, puncher, pointed_thing) - techage.del_mem(pos) - end + return not nvm.running + end, + + after_dig_node = function(pos, oldnode, oldmetadata) + techage.remove_node(pos, oldnode, oldmetadata) + techage.del_mem(pos) end, on_timer = check_rules, diff --git a/lua_controller/controller.lua b/lua_controller/controller.lua index b3dce51..92d3c4d 100644 --- a/lua_controller/controller.lua +++ b/lua_controller/controller.lua @@ -541,13 +541,9 @@ minetest.register_node("techage:ta4_lua_controller", { end end, - on_dig = function(pos, node, puncher, pointed_thing) - if minetest.is_protected(pos, puncher:get_player_name()) then - return - end - - techage.remove_node(pos) - minetest.node_dig(pos, node, puncher, pointed_thing) + after_dig_node = function(pos, oldnode, oldmetadata) + techage.remove_node(pos, oldnode, oldmetadata) + techage.del_mem(pos) end, on_timer = on_timer, diff --git a/lua_controller/server.lua b/lua_controller/server.lua index 7c1d467..62cea21 100644 --- a/lua_controller/server.lua +++ b/lua_controller/server.lua @@ -86,11 +86,14 @@ minetest.register_node("techage:ta4_server", { return end techage.del_mem(pos) - techage.remove_node(pos) minetest.node_dig(pos, node, puncher, pointed_thing) end, - on_timer = function(pos, elasped) + after_dig_node = function(pos, oldnode, oldmetadata) + techage.remove_node(pos, oldnode, oldmetadata) + end, + +on_timer = function(pos, elasped) local meta = M(pos) local nvm = techage.get_nvm(pos) nvm.size = nvm.size or 0 diff --git a/manuals/markdown2formspec.py b/manuals/markdown2formspec.py index 72df37b..76c7cb4 100644 --- a/manuals/markdown2formspec.py +++ b/manuals/markdown2formspec.py @@ -106,7 +106,7 @@ class MyRenderer(mistune.Renderer): ## def block_code(self, code, lang): text = formspec_escape(code.strip()) - lines = text.split("\n") + lines = text.split("\\n") lines = [" " + item for item in lines] self.TextChunck.extend(lines) self.TextChunck.append("") diff --git a/manuals/ta4_lua_controller_EN.md b/manuals/ta4_lua_controller_EN.md index 3faab69..52a247b 100644 --- a/manuals/ta4_lua_controller_EN.md +++ b/manuals/ta4_lua_controller_EN.md @@ -347,13 +347,15 @@ In addition to Lua standard function the Lua Controller provides the following f ### Techage Command Functions With the `$send_cmnd(num, ident, add_data)` function, you can send commands to and retrieve data from another block with the given number _num_. -The possible commands can be classified in two groups: Commands for reading data and commands for causing an action. +The possible commands can be classified in two groups: Commands for reading data and commands for triggering an action. Please note, that this is not a technical distinction, only a logical. -* Reading data - _ident_ specifies the data to be read. - _add_data_ is for additional data and normally not needed. - The result is block dependent (see table below): +**Reading data** + +- _ident_ specifies the data to be read. +- _add_data_ is for additional data and normally not needed. +- The result is block dependent (see table below) + | ident | returned data | comment | | ------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | @@ -373,11 +375,11 @@ Please note, that this is not a technical distinction, only a logical. +**Trigger an action** -* Causing an action - _num_ is the number of the remote block, like "1234". - _cmnd_ is the command, - _data_ is additional data (see table below): +- _num_ is the number of the remote block, like "1234" +- _cmnd_ is the command +- _data_ is additional data (see table below) | cmnd | data | comment | | -------------------------------- | ------------ | ------------------------------------------------------------ | diff --git a/manuals/ta4_lua_controller_EN.pdf b/manuals/ta4_lua_controller_EN.pdf index 1127fdf..0f9e6fd 100644 Binary files a/manuals/ta4_lua_controller_EN.pdf and b/manuals/ta4_lua_controller_EN.pdf differ