* don't forceload the block of every single tube in the world on every item being send through any one of them
* cache file contents to avoid unnecessary reads on every single item send through a tp tube
* reduce redundant metadata and table lookups
* reduce write operations during the same changes to a file
still to do is a switch from an arraylist-table to a hashmap-table to make lookups and updates on the cache faster
The new function has no API compatibility with the old one, so give it
a different name to avoid confusion among caller mods, which need to
change their usage. Have a function under the old name that outputs a
helpful error message.
Merge node breaker into the generic wielder mechanism. Center the wield
inventory in all wielders' formspecs. Implement full auto-upgrade of
legacy node breakers, occurring upon use or punching of the node breaker.
Make node breaker respect on_dig hooks.
Merge implementations into a single "wielder" mechanism. Clean up the
code a bit. Fix get_player_control_bits for the dispenser (it wasn't
indicating the sneak setting). Fix drops for dispenser (dispenser_on was
dropping as itself). Show item image, as well as name, at head of form.
The filter-injectors used to always prefer to take items from the
beginning of the source inventory. Because items also tend to get placed
at the beginning of an inventory, this could lead to a chest+injector
buffer only passing through a trickle of one type of item, where other
item types are flowing in and getting later inventory slots. So now,
the sequencing of source inventory slots is configurable, per-injector,
by form. In addition to the old priority mode, there's now a random
mode and a rotation mode.
Incidentally refactor the filter-injector code, to avoid duplication
between the itemwise and stackwise variants.
Describe the two modes as "Send and Receive" and "Send only", rather
than the misleading "On" and "Off". Also make the mode toggle button
lag-resistant.