* Apply area protections on storage nodes
* Fix player undefined
* Reuse codes, and add code for duplicator inventory
* Add code for controller and builder
* Fix luacheck
* Calls to `ObjectRef:moveto()` (Replaced by `ObjectRef:add_pos()` or `ObjectRef:move_to()` depending on engine version)
* Calls to `ObjectRef:setyaw()` (Replaced by `ObjectRef:set_yaw()`)
* Calling `MetaDataRef:set_string()` with `nil` as the second parameter (Replaced by `""`)
* 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>
* Forbid dropping loaded digtron crates (see #44)
This workaround forbids dropping the crates, so the servers should no
longer crash so often because of loaded digtron crates.
* Check for protection when taking crates
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
* fix crate protection
all crates check area protection (minetest.is_protected)
protected crates check area and owner (even if not in protected area)
* separate check and action
* whitespace stuff
* another missing whitespace
* add suggestion from T4im
After a failure to move the digtron with its metadata, some nodes were
broken. This worked around crashes that occurred if the inventory table
was missing.
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).