* add luacheck and ci workflow
* fix another bunch
* more fixes
* more fixes
* regex magic
* add deps
* doc.lua special rules
* more regex magic
* final fixes
---------
Co-authored-by: BuckarooBanzay <BuckarooBanzay@users.noreply.github.com>
This pass cleans up a lot of unnecessary table allocation and disposal, which should help with memory usage and garbage collection.
It also adds some sophistication to the entity damage process from diggers, allowing items to be picked up into Digtron inventory.
* Use updated awards API
* Fix dig/place incrementing
* Use awards.player() in crates
* Use new 'dig' incrementor for digtron packing
* Only initialize tables if they dont exist
* Fix typo
* Remove init function, use checks instead
There have been reports of large, distant-from-player Digtrons apparently failing to completely write their layouts to the map, resulting in an inconsistency.
This adds an attempt to brute-force a solution. When a map write fails it will be retried until it succeeds, or until 1 second elapses (at which point the write is aborted in a hopefully somewhat clean manner).
A user has reported a crash that appears to involve a builder node (group 4) that lacks a "main" inventory somehow. This code prevents a crash in this circumstance and logs the node_image to hopefully identify the culprit.