summaryrefslogtreecommitdiff
path: root/mesecons/init.lua
AgeCommit message (Collapse)Author
2016-09-04Never postpone action_on or action_offJeija
There is no more need for that since VoxelManip caching makes sure we always get an answer to get_node_force.
2016-09-04Add Hawk777 to contributor list, update developer documentation URLJeija
2016-08-30Greatly improve performance by making use of VoxelManips in turnoffJeija
Instead of seperately looking for onstate receptors along equipotential sections of the circuit before turning off, do that while already modifying the VoxelManip. In case an onstate receptor is found, discard the VoxelManip cache, otherwise commit it after turnoff is completed.
2016-08-24Use VM transactions for conductor state changes.Christopher Head
VoxelManipulator-based transactions are used to hopefully speed up scanning and replacing of networks of conductors when receptors start or stop driving signals into them.
2016-08-23Split wires into their own mod, introduce autoconnect hooksCarter Kolwey
The update_autoconnect function had to be abstracted away from the default wires, any kind of wire can now register autoconnect hooks, which should make having multiple different wire types much easier. mesecons_mvps, mesecons_receiver and mesecons_random made use of update_autoconnect, their code was also adapted. This also fixes a receiver bug: If a receiver was placed with a onstate receptor next to it (but not the wall lever / button that caused the receiver to appear) the receiver didn't turn on in the past. Also move documentation for mesecon wire into mesecons_wire.
2016-02-14Use vector helper functions instead of old builtin cmpPos and addPosRule ↵Jeija
functions
2015-10-04Remove trailing whitespaceJeija
2014-11-22Fix compatibility with not yet updated mods that use mesecon:receptor_*Jeija
2014-11-22Replace mesecon:<some_function> with mesecon.<some_function> for greaterJeija
flexibility and because it was never inteded to be OOP in the first place. mesecon.receptor_on and mesecon.receptor_off are provided by wrappers (mesecon:receptor_on/off) for compatibility, but will be removed. Mod programmers that use mesecons: Please update! Also, fix microcontroller polluting the global namespace and remove some deprecated stuff.
2014-11-22Pressure plates and the object detector will send power to verticalJeija
wires 2 nodes below them, allows to hide circuitry powered by them. Fixes #179 Rewrite pressure plates + vertical wires using mesecon.register_node.
2014-04-20Fix #155 (option 2 used). Remove non-ActionQueue system. Enable overheat for ↵Jeija
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-03-21Send changesignals for placed receptors when not powered, make on_placenode ↵Jeija
code more readable with comments. Also fixes a bug of lua- / microcontrollers not being updated when pushed by a piston. This could cause some bugs, even though I haven't found any while testing as it is a very core part of mesecons.
2014-01-19Fix delayers and disable resuming if not using MESECONS_GLOBALSTEPJeija
2014-01-11Make receptor_on/off overwritable, fix a serious bug.Novatux
2014-01-11Actionqueue tweaksJeija
2014-01-11Fix unloaded area in receptor_off, yet it was only fixed in receptor_onJeija
2014-01-11Add ActionQueue priority systemJeija
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-10First draft of some kind of Action Queue (just like the globalstep queue in ↵Jeija
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-04Fix when there are several rules with different specialsNovatux
2014-01-04Fix bugs with multi-rules conductors (like crossing) that have param2Novatux
2013-11-30Update code to standards of Minetest 0.4.8.Uberi
2013-08-27Merge pull request #112 from khonkhortisan/multi_ruleskhonkhortisan
Multi rules Merged for near-future textures to be merged cleanly.
2013-06-20Crossoverkhonkhortisan
2013-06-05Change mesecons signals so that they update effectors only after a ↵Novatux
globalstep, configurable to be on/off
2013-01-19Fix Bug: Wrong usage of action_on/action_off instead of action_changeJeija
2013-01-09Fix a bug that occured when using a receptor placed directly next to aJeija
gate. We need to call a changesignal even if the gate/other effector is still connected to a power source in a way.
2012-12-27Bugfix foes for pistons, delayyrs, gates and microcontrollers. Rework delayers.Jeija
2012-12-21Bugfix, wires sometimes turned off for no reasonJeija
2012-12-19Add rule-name system. Every input rule can now have a name, that could help ↵Jeija
e.g. the microcontroller to know where a signal comes from.
2012-12-16Minor cleanup, use addPosRuleJeija
2012-12-15Upload cleaned up mesecons to nextgen branchJeija
2012-12-08Cleanup, make and use util.lua, port command block and delayer to nodedefJeija
2012-12-08New branch: Move mesecon to node definition instead of functions like ↵Jeija
register_conductor; first steps: move everything to legacy
2012-09-08Fix Microcontroller bug (discovered by Fenris) and some others that propably ↵Jeija
noone found
2012-09-06Implement mesecon:register_receptor(onstate, offstate, rules, get_rules) and ↵Jeija
make add_receptor_node(_off) deprecated
2012-09-05Code cleanupJeija
2012-08-16Add conductor rules, add demo isolated mesecons to proof that it worksJeija
2012-08-13New effector system, effectors have to be registered with ↵Jeija
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-13Make mesecons only connect to input and output ports (e.g. of the delayer)Jeija
2012-08-13Code cleanup, little bugfix (some conductors placed next to receptors didn't ↵Jeija
turn on)
2012-08-13Code cleanupJeija
2012-08-13Code cleanupJeija
2012-08-13Minimal speedup by not checking some nodes twice for receptorsJeija
2012-08-13Code cleanup and ond more extremely small speedupJeija
2012-08-12Further (small) speed improvement, shrink code & more comments on itJeija
2012-08-12HUGE speed improvementJeija
2012-08-11Add new nodebox style wires. Can be activated by setting NEW_STYLE_WIRES to ↵Jeija
true (in mesecons/settings.lua)
2012-08-10Consistency improvement and remove dead codeJeija
2012-08-01not_in_creative_inventoryKotolegokot
2012-06-20Fix Bug: Mesecons cannot be digged due to a collisionbox failureJeija