diff options
author | Vanessa Ezekowitz <vanessaezekowitz@gmail.com> | 2017-10-27 15:13:31 -0400 |
---|---|---|
committer | Vanessa Ezekowitz <vanessaezekowitz@gmail.com> | 2017-10-27 15:13:31 -0400 |
commit | 6281dc744dc3951234931a9f44c3bdd353f79df7 (patch) | |
tree | 0ead0d0d18be58bed7480cb9a5ea1495230c568f /mesecons_luacontroller | |
parent | 2e6082ccdbd121cd5fc0f82a931ac01ac00dcb76 (diff) | |
download | dreambuilder_modpack-6281dc744dc3951234931a9f44c3bdd353f79df7.tar dreambuilder_modpack-6281dc744dc3951234931a9f44c3bdd353f79df7.tar.gz dreambuilder_modpack-6281dc744dc3951234931a9f44c3bdd353f79df7.tar.bz2 dreambuilder_modpack-6281dc744dc3951234931a9f44c3bdd353f79df7.tar.xz dreambuilder_modpack-6281dc744dc3951234931a9f44c3bdd353f79df7.zip |
updated boost cart, homedecor modpack, castles modpack, currency, farming-redo,
maptools, mesecons, moreblocks, moreores, pipeworks, quartz
Diffstat (limited to 'mesecons_luacontroller')
-rw-r--r-- | mesecons_luacontroller/init.lua | 35 |
1 files changed, 28 insertions, 7 deletions
diff --git a/mesecons_luacontroller/init.lua b/mesecons_luacontroller/init.lua index 25273a1..93703d8 100644 --- a/mesecons_luacontroller/init.lua +++ b/mesecons_luacontroller/init.lua @@ -522,6 +522,23 @@ local digiline = { end } } + +local function get_program(pos) + local meta = minetest.get_meta(pos) + return meta:get_string("code") +end + +local function set_program(pos, code) + reset(pos) + reset_meta(pos, code) + local err = run(pos, {type="program"}) + if err then + reset_meta(pos, code, err) + return false, err + end + return true +end + local function on_receive_fields(pos, form_name, fields, sender) if not fields.program then return @@ -531,12 +548,10 @@ local function on_receive_fields(pos, form_name, fields, sender) minetest.record_protection_violation(pos, name) return end - reset(pos) - reset_meta(pos, fields.code) - local err = run(pos, {type="program"}) - if err then - print(err) - reset_meta(pos, fields.code, err) + local ok, err = set_program(pos, fields.code) + if not ok then + -- it's not an error from the server perspective + minetest.log("action", "Lua controller programming error: " .. err) end end @@ -590,7 +605,11 @@ for d = 0, 1 do receptor = { state = mesecon.state.on, rules = output_rules[cid] - } + }, + luacontroller = { + get_program = get_program, + set_program = set_program, + }, } minetest.register_node(node_name, { @@ -629,6 +648,7 @@ for d = 0, 1 do mesecon.receptor_off(pos, output_rules) end, is_luacontroller = true, + on_blast = mesecon.on_blastnode, }) end end @@ -669,6 +689,7 @@ minetest.register_node(BASENAME .. "_burnt", { end, }, }, + on_blast = mesecon.on_blastnode, }) ------------------------ |