Commit Graph

45 Commits

Author SHA1 Message Date
Jeija f1211f7dae Add ActionQueue priority system
This makes effectors nearer to the source of the action (the receptor) update first.

This defines behaviour for this piston circuit: http://i.imgur.com/9Pp2Mzb.png
And defines, that this memory circuit does not work from this direction: http://i.imgur.com/jJn0aFh.png
But it will work when using the switch from the other side: http://i.imgur.com/nvw0oZB.png

Only if two effectors have the same distance, there is nothing we can do about it, behaviour is not defined.
"Distance" is determined by the stack size of recursions in turnon / turnoff.
Priorities are between 0 (lowest) and 1 (highest).
2014-01-11 14:57:56 +01:00
Jeija 2d004b19ea First draft of some kind of Action Queue (just like the globalstep queue in to_update), but more flexible and also including delay functionality (mesecon_delayer).
The queue is also saved to a file, so that when restarting mesecons, delayers resume to the state they had when the game shut down. Needs testing.
2014-01-10 22:33:40 +01:00
Novatux fb417d45a7 Fix when there are several rules with different specials 2014-01-04 17:22:04 +01:00
Novatux d5b39951a4 Fix bugs with multi-rules conductors (like crossing) that have param2 2014-01-04 14:15:41 +01:00
Uberi 16b4b79c51 Update code to standards of Minetest 0.4.8. 2013-11-30 22:13:00 -05: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
Jeija ef087f2bb6 Fix Bug: Wrong usage of action_on/action_off instead of action_change 2013-01-19 23:37:03 +01:00
Jeija 841bc70b97 Fix a bug that occured when using a receptor placed directly next to a
gate.
We need to call a changesignal even if the gate/other effector is still
connected to a power source in a way.
2013-01-09 16:56:25 +01:00
Jeija 7fe4947056 Bugfix foes for pistons, delayyrs, gates and microcontrollers. Rework delayers. 2012-12-27 09:28:04 +01:00
Jeija 9019a4aff7 Bugfix, wires sometimes turned off for no reason 2012-12-21 16:04:19 +01: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 2c4a46a557 Minor cleanup, use addPosRule 2012-12-16 16:29:03 +01:00
Jeija 44dc1a128c Upload cleaned up mesecons to nextgen branch 2012-12-15 18:45:51 +01:00
Jeija 00e071b695 Cleanup, make and use util.lua, port command block and delayer to nodedef 2012-12-08 21:56:09 +01:00
Jeija e0aa5b1d3d New branch: Move mesecon to node definition instead of functions like register_conductor; first steps: move everything to legacy 2012-12-08 14:14:04 +01:00
Jeija f959c16763 Fix Microcontroller bug (discovered by Fenris) and some others that propably noone found 2012-09-08 15:10:31 +02:00
Jeija 3928d54d0c Implement mesecon:register_receptor(onstate, offstate, rules, get_rules) and make add_receptor_node(_off) deprecated 2012-09-06 09:53:30 +02:00
Jeija 7e7e1de725 Code cleanup 2012-09-05 23:52:09 +02:00
Jeija 78fdedc880 Add conductor rules, add demo isolated mesecons to proof that it works 2012-08-16 21:24:06 +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 24c50571f7 Make mesecons only connect to input and output ports (e.g. of the delayer) 2012-08-13 16:49:14 +02:00
Jeija b197d29bef Code cleanup, little bugfix (some conductors placed next to receptors didn't turn on) 2012-08-13 13:12:19 +02:00
Jeija 955b8254dd Code cleanup 2012-08-13 12:03:36 +02:00
Jeija b8ba13a17a Code cleanup 2012-08-13 11:58:04 +02:00
Jeija c20a4b3a89 Minimal speedup by not checking some nodes twice for receptors 2012-08-13 09:37:55 +02:00
Jeija c8c2fd32da Code cleanup and ond more extremely small speedup 2012-08-13 08:50:10 +02:00
Jeija fc74976f9c Further (small) speed improvement, shrink code & more comments on it 2012-08-12 23:02:38 +02:00
Jeija 9829abc74d HUGE speed improvement 2012-08-12 10:57:00 +02:00
Jeija 6b1941a380 Add new nodebox style wires. Can be activated by setting NEW_STYLE_WIRES to true (in mesecons/settings.lua) 2012-08-11 22:58:00 +02:00
Jeija 8fa6894953 Consistency improvement and remove dead code 2012-08-10 18:58:21 +02:00
Kotolegokot 70841d8c8e not_in_creative_inventory 2012-08-01 15:58:19 +06:00
Jeija 3ed865d94d Fix Bug: Mesecons cannot be digged due to a collisionbox failure 2012-06-20 19:26:07 +02:00
Anthony Zhang 4200757ba3 Remove deprecated API functions "register_on_placenode" and "register_on_dignode" where possible. 2012-06-04 22:20:04 -04:00
Anthony Zhang 51453bb6c2 Made mesecons diggable 2012-04-24 17:28:14 -04:00
Jeija 029ad8be33 Add documentation for conductors 2012-04-22 07:55:57 +02:00
Jeija 11b5ef8c94 Add new conductor system 2012-04-22 07:48:45 +02:00
Jeija d9a605511d Remove dedicated meselamp stuff 2012-03-29 22:14:14 +02:00
Jeija ce87414f6b Add mesecons delayer 2012-03-29 22:11:17 +02:00
Jeija d069275d09 Rules + Receptor system rework 2012-03-29 21:06:48 +02:00
Jeija d54d148595 Add reference for new rules system 2012-03-29 11:53:11 +02:00
Jeija 8e0b2a2b11 Simplify rules System 2012-03-29 11:35:23 +02:00
Anthony Zhang 3018128b4b Update nodes for compatibility with digging time groups. 2012-03-22 17:52:11 -04:00
Jeija 36ae0cc1a5 Upload after major code reorganization - Version 0.6 DEV - Split mesecons mod into several modules - [BUGGY?] 2012-03-05 19:21:26 +01:00