summaryrefslogtreecommitdiff
path: root/mesecons
AgeCommit message (Collapse)Author
2022-01-01Detect dreambuilder and use its theme settings for the Luacontrollercheapie
2022-01-01Add Luacontroller library supportcheapie
Fixes upstream #557
2021-11-27Optimize light updates when turning conductors on and off (#578)Jude Melton-Houghton
2021-08-21Only skip conductors with flat rules in turnon/offJude Melton-Houghton
2021-08-02Handle getting out-of-bounds bits in get_bit (#574)Jude Melton-Houghton
The binary state is not padded with zeroes, so they must be inferred.
2021-07-24Fix on_placenode conductor turnon link direction (#572)Jude Melton-Houghton
2021-03-25Fix on-state effector-receptor combos (eg. gates) recepting to everywhereDesour
2021-03-25Improve performance of mesecon.turnon and mesecon.turnoff (#556)DS
2020-12-19Replace mesecon.mergetable (#533)Vitaliy
2020-09-21Restrict Lua controller interrupt IDs (#534)Vitaliy
* Deprecate non-string IIDs * Restrict tabular IIDs to proper trees Fixes crash on recursive interrupt ID (#473)
2020-06-27Use mod.conf for dependencies (#492)David Leal
2020-01-06Refactor actionqueue.lua (#501)DS
Reduce actionqueue complexity, thus faster execution Improve code style Add documentation/explanations
2019-09-23Use table.copy in mesecons.tablecopyVitaliy
mesecons.tablecopy didn’t support recursive tables, while Minetest table.copy works well for them.
2019-06-27Optimize images (#464)Hugo Locurcio
Recompress losslessly using `optipng` and `advpng`
2018-07-24Replace usage of default.LIGHT_MAX with minetest.LIGHT_MAXsfan5
It was moved a long time ago and the former is not guaranteed to be available. fixes #424
2018-03-25Replace deprecated methods:AntumDeluge
- 'setting_get' with 'settings:get' - 'setting_getbool' with 'settings:get_bool'
2017-11-01Set is_ground_content to false (#386)DS
2017-10-21Fix typonumber Zero
2017-10-08Improve rules and rule handling (#370)DS
2017-10-07Handle blasts (#356)DS
2017-10-04Do not reset conductor param2 on place (#364)DS
2017-04-14Improve overheating (#334)numberZero
New overheating system that doesn’t use the meta.
2017-01-28FPGAs (#315)sfan5
2017-01-15Luacontroller: Revert function stripping from digiline messagesJeija
2017-01-02Properly handle rotation of buttons / leversCarter Kolwey
Buttons and levers can now also be pointed upwards / downwards which will make them connect to corresponding up / down receivers. You will need to use the screwdriver for this. Receivers cannot be rotated using the screwdriver anymore.
2016-12-31Luacontroller: Fix bugs in 703e6fda, no more functions as keysJeija
Thanks to @ShadowNinja for reporting this Make sure functions that are keys in tables and functions inside nested tables also get removed when using digiline_send.
2016-12-28Luacontroller: Restrict digiline messagesJeija
Restrict maximum length of messages to 50.000 characters and disable sending functions or table references over the wire. Restrict types of channel variable to string, number or boolean. The missing length restriction made DoS-like attacks possible by overflowing memory using string concatenation. Thanks to gamemanj for disclosing this issue.
2016-11-17Remove an unused function.Christopher Head
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-31Duplicate unhash_blockpos code to legacy.luaJeija
Duplicating that small piece of code seems like a better idea than putting the undo-forceloading code back into util.lua. This way, it is easier to remember to remove that unneccesary code after a couple of months / years, when people have transitioned. This also means we can make changes to the code in util.lua without breaking old code.
2016-08-30Remove some long unused legacy codeJeija
The change that required this compatibility layer happened in 2014, so other mods have had a lot of time to update.
2016-08-30Small cleanups in `internal.lua`, move forceloading reversal to legacyJeija
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-30Further simplification of turnon/turnoffJeija
2016-08-24Simplify turnon/turnoff.Christopher Head
It is no longer possible for get_node_force to return nil if the target location does, in fact, exist, because a VM will always be able to load it (whereas a forceload might not, due to exhaustion of forceload resources). So it is no longer necessary to handle get_node_force returning nil by deferring processing.
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-24Implement VoxelManipulator-based transactions.Christopher Head
Rather than calling out through the Lua-to-C API for each node that needs to be read or written, a group of map reads (and optionally writes) can be grouped into a transaction. Access to map data within the transaction is provided at high speed by means of VoxelManipulators. Once the reads and writes are finished, the transaction can be committed or aborted.
2016-08-24Use VoxelManipulators for get_node_force.Christopher Head
A VoxelManipulator, when asked to read a mapblock, in addition to making that mapblock available to the caller, also pulls it into the server’s map cache, thus making get_node calls in the immediate future succeed. This has the dual advantages that not every mapblock containing a Mesecons circuit need remain loaded at all times (rather mapblocks can be loaded on demand as signals are sent), and that the server need not bother running ABMs and ticking entities within those mapblocks that are loaded due to Mesecons signalling.
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-08-23Move shared textures into base mod (fixes a few LuaC issues)Carter Kolwey
2016-07-31Fix bug introduced in previous commit that broke all logic blocksJeija
turnon / turnoff were calling activate / deactivate on nodes even though their rules didn't link Fixes #278, thanks to @darkfeels
2016-07-25Fix #276: Fix bugs in block forceloading in turnon / turnoffJeija
Thanks to @Hawk777 for reporting this problem
2016-07-09Don't bother checking if a node can overheat before cooling itCarter Kolwey
2016-02-22Fix crash due to force loading changes.Samuel Sieb
2016-02-19Remove unused VERSION fileJeija
and remove debug output
2016-02-19Force-load areas with mesecon usageJeija
This is a major speedup for large mesecon machines / structures. Force-loaded areas are stored in a file to be persistent over server reboots. By default, areas are unloaded after 10 minutes (600s) without usage, this can be customized with the mesecon.forceload_timeout setting. Please turn max_forceloaded_blocks up for better performance.
2016-02-15Consistently use UNIX line endings (LF instead of CR LF)Jeija
2016-02-14Always use minetest.set_node instead of minetest.add_node for consistencyJeija
2016-02-14Use vector helper functions instead of old builtin cmpPos and addPosRule ↵Jeija
functions