Changes digtron.tap_batteries function so that battery wear and charge is set directly to 0 instead of needlessly calculating it.
Fixes a crash that happens if a battery item doesn't define tool capabilities.
* 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).
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.