diff options
author | Zefram <zefram@fysh.org> | 2014-04-25 11:54:39 +0100 |
---|---|---|
committer | Jeija <jeija@mesecons.net> | 2014-04-25 18:30:59 +0200 |
commit | f1eaee2281faa0ada1d72b009de32826b3204024 (patch) | |
tree | eae9b7037c22704b8f0d58607e4e2ce0ce400a42 /mesecons_microcontroller/init.lua | |
parent | 300abcb5877d948e6a68be454ed46b65a0f90f01 (diff) |
fix programming microcontroller through form
The handling of the "quit" pseudo-field meant that the microcontroller
couldn't be programmed with explicit code, only with the examples.
The "quit" can actually be ignored: what matters for programming the
controller is whether the "code" field was supplied.
Diffstat (limited to 'mesecons_microcontroller/init.lua')
-rw-r--r-- | mesecons_microcontroller/init.lua | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/mesecons_microcontroller/init.lua b/mesecons_microcontroller/init.lua index ec7afbd..8c9f3b8 100644 --- a/mesecons_microcontroller/init.lua +++ b/mesecons_microcontroller/init.lua @@ -98,9 +98,6 @@ minetest.register_node(nodename, { meta:set_string("eeprom", r) end, on_receive_fields = function(pos, formanme, fields, sender) - if fields.quit then - return - end local meta = minetest.get_meta(pos) if fields.band then fields.code = "sbi(C, A&B) :A and B are inputs, C is output" @@ -114,8 +111,8 @@ minetest.register_node(nodename, { fields.code = "if(A)sbi(1,1);if(!A)sbi(B,!B)sbi(1,0); if(C)off(B,1); :A is input, B is output (Q), C is reset, toggles with falling edge" elseif fields.brsflop then fields.code = "if(A)on(C);if(B)off(C); :A is S (Set), B is R (Reset), C is output (R dominates)" - elseif fields.program or fields.code then --nothing - else return nil end + end + if fields.code == nil then return end meta:set_string("code", fields.code) meta:set_string("formspec", "size[9,2.5]".. |