Commit Graph

62 Commits

Author SHA1 Message Date
ShadowNinja
bd1766e448 Improve the LuaController
Changes:
  * Stops code after a certain number of instructions.
  * Allows functions, due to instruction counting.
  * Allows loops and goto with non-JIT Lua (LuaJIT doesn't count looping as an instruction, allowing infinite loops), due to instruction counting.
  * Removes string matching functions as they can be slow.
  * Adds some safe functions.
  * Limits the amount of printing that can be done (to prevent console flooding).
  * Code cleanup.
  * More...
2014-10-07 17:09:25 -04:00
Zefram
f1eaee2281 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.
2014-04-25 18:30:59 +02:00
Jeija
300abcb587 Fix #155 (option 2 used). Remove non-ActionQueue system. Enable overheat for more than 20 actions per second on lua- / microcontrollers and gates.
Fix a bug where a burnt luacontroller didn't have the correct pin-states as the burnt controller does not register any changes from outside.
2014-04-20 21:51:17 +02:00
Novatux
f1ae54ed12 Try to fix gateswith serverstep code. 2014-01-11 07:24:42 +01:00
Uberi
e8d31c3e5a Change field receipt handling to work properly with Minetest 0.4.8. 2013-12-18 14:54:46 -05:00
Uberi
16b4b79c51 Update code to standards of Minetest 0.4.8. 2013-11-30 22:13:00 -05:00
Vanessa Ezekowitz
f46bc329de Use minetest.swap_node() instead of mesecons' version, Minor code changes
here and there to facilitate this.
2013-11-30 20:34:55 -05:00
khonkhortisan
75ca00f51e Escape microcontroller code in formspec 2013-08-29 14:14:04 -07:00
khonkhortisan
913e355a71 Merge pull request #112 from khonkhortisan/multi_rules
Multi rules
Merged for near-future textures to be merged cleanly.
2013-08-27 22:22:30 -07:00
khonkhortisan
885899cbaf Crossover 2013-06-20 09:30:26 -07:00
Novatux
afad592783 Change mesecons signals so that they update effectors only after a globalstep, configurable to be on/off 2013-06-05 15:37:55 -04:00
Novatux
edc10dac47 Add an ABM function which resets heat to 0, since gates/controllers won't be cooled normally if they are moved (piston, etc...) during the cooling delay. 2013-06-05 06:45:19 +02:00
RealBadAngel
255e363b04 Fix all crafting recipes to use modern style 2013-04-28 12:40:08 +02:00
Anthony Zhang
3792b692aa Digging and footstep sounds for everything that needs them! Plus, pushing buttons, punching switches, and flipping levers all make sounds. 2013-03-06 20:51:57 -05:00
Jeija
6b1bfe6391 Add rule-name system. Every input rule can now have a name, that could help e.g. the microcontroller to know where a signal comes from. 2012-12-19 17:34:05 +01:00
Jeija
c0d3bd2abb Include experimental vertical wires (needs textures) 2012-12-13 18:42:45 +01:00
Jeija
05def1540a Fix microcontroller digging 2012-12-09 15:32:29 +01:00
Jeija
b37bdbf55c Port a lot more (basically everything apart from gates, pistons and extrawire crossing) to the new nodedef system. There are some problems with wall button and wall lever (in the way they visually connect to wires) 2012-12-09 00:42:30 +01:00
cornernote
931ac23ff3 Improve T-FF code and add a reset pin on C. 2012-10-07 13:08:01 -04:00
Jeija
500e95c331 Fix Microcontroller bug in a different way, define offstate ports as inputs only 2012-09-09 13:07:59 +02:00
Jeija
f959c16763 Fix Microcontroller bug (discovered by Fenris) and some others that propably noone found 2012-09-08 15:10:31 +02:00
Vanessa Ezekowitz
34737f62e9 oops, that last commit broke something - evidently 'code' is not consistent.
This restores the previous behavior when code=nil, and shows the code when not.
2012-09-01 17:42:42 -04:00
Vanessa Ezekowitz
1d29037d8b fix missing code display when after() is involved 2012-09-01 17:32:49 -04:00
Vanessa Ezekowitz
f641a0cc9c prevent crash with malformed sbi code.
just inserting "sbi(A, C!=D)" into a µC without connecting it to anything
causes 'b' at line 510 to become nil, crashing the server.
2012-09-01 17:28:04 -04:00
Kyle
d399162fc1 Reduced the number of µC images. Instead of 16 top images, there is one
off image, then four port images that can be overlaid on top of the
blank.
2012-08-24 23:23:44 -07:00
Vanessa Ezekowitz
d0ae1b56e8 added proper bottom image to microcontroller 2012-08-25 01:32:24 -04:00
Kyle
9cfb13d60c pressing enter will reprogram the µC instead of acting like escape 2012-08-24 20:59:26 -07:00
khonkhortisan
68b99fed76 display µc programming like a sign
I had a grid that mapped buttons to pixels so pressing a button displayed a letter. I had one programming that was a positive match so the pixel turned on, and another programming that was negative and just passed the signal on to the next pixel. If I had to right-click on each µc to see its programming, it would take me longer to find a problem. If I can see the programming just by looking at it, I could find a typo much easier.
I'm not sure about the \n \n\r thing.
2012-08-21 10:35:34 -07:00
Jeija
b2c5a672e7 Remove obsolete digprop_constanttime 2012-08-20 09:51:19 +02:00
Jeija
c103aa6b23 Fix some bug that occurs when placing microcontrollers directly next to each other 2012-08-18 11:06:24 +02:00
Jeija
67dfa93c2e Finish after() command: works now 2012-08-13 23:20:29 +02:00
Jeija
5ede8f370c Bugfix for microcontroller's after(): Make sure that microcontroller the code runs on is the same that sends the code 2012-08-13 22:55:14 +02:00
Jeija
9f16e4fcaa Add not-yet-working after(time, code) function to the microcontroller 2012-08-13 22:33:25 +02:00
Jeija
00ce2540c2 New effector system, effectors have to be registered with mesecon:register_effector(onstate, offstate, rules, function get_rules) rules and function get_rules are optional. You don't have to specify both onstate and offstate (required for e.g. removestone) 2012-08-13 20:17:45 +02:00
Jeija
3ea68a6eae Fix mesecon delayer bugs and other non-functional changes 2012-08-12 21:28:53 +02:00
Jeija
9829abc74d HUGE speed improvement 2012-08-12 10:57:00 +02:00
Vanessa Ezekowitz
5d1c184941 thinned the microcontroller down a bit to fit the style of the other floor objects. 2012-08-11 21:04:05 -04:00
Vanessa Ezekowitz
e12b297987 change all recipes to use group:mesecon_conductor_craftable
fixed deprecated/invalid recipes in lightstones.

fixed copy&paste error in one of the delayer textures

fixed recipe for player detector to rely on microcontroller instead of old IC
2012-08-11 20:53:47 -04:00
Jeija
1f6e1fa7ab Mesecons only connect to blocks with group mesecon > 1 2012-08-11 23:39:28 +02:00
Vanessa Ezekowitz
39db9cf01c Added "mesecon = 1" to the groups setting for most objects, so that they'll
visibly connect to neighboring wires.
2012-08-10 17:35:54 -04:00
Jeija
fe6c9f3e09 Little bugfix: Register microcontroller0000 as off receptor 2012-08-10 11:46:17 +02:00
Jeija
ce72ed2bab Add print command print(string in quotes or condition, can be concatenated using comma) 2012-08-10 10:47:40 +02:00
Jeija
6a524b8cdd Add else: if(condition)command()>command(); > is else 2012-08-10 10:19:33 +02:00
Jeija
0633809f73 Allow usage of sbi(PORT, condition) and change preset snippets to use this 2012-08-10 09:44:49 +02:00
Jeija
9fa033db7b Remove dead timer 2012-08-10 08:23:55 +02:00
Jeija
ce928a5954 Little bugfix for programming the microcontroller 2012-08-09 23:09:02 +02:00
Jeija
af3288f61d Add buttons for logic gates and some FlipFlops 2012-08-09 22:39:54 +02:00
Jeija
f557b6c363 Add overheat protection and lots of bugfixes once again 2012-08-09 21:40:25 +02:00
Jeija
0abfa674d6 A huge lot of bugfixes 2012-08-09 16:25:30 +02:00
Jeija
9854160ece Bugfix for last push 2012-08-09 13:34:10 +02:00