This fixes several issues:
* More than one switching station could become active on large networks
- Switching stations now semi-permanently become disabled if another is present
- Power monitors have been added to replace the function of "slave" switching stations, to discourage overuse of switching stations
* Networks did not reliably "split" when cutting a cable
- I "may" have caused this issue, but I believe it is solved by this
* Machines did not run without a player near the switching station
- Active switching stations now forceload themselves, and free the forceloaded block if disabled, dug, or disconnected
- Machines are only loaded to run them (as before), so only one mapblock (or two if the bottom edge of the switching station is a mapblock boundary) is loaded
- Cables are still only loaded during a full network recalculation
Changes:
* Make rayIter a global utility, and use it for radiation too.
* prettynum -> pretty_num and cleanup.
* Remove resolve_name/function_exists (unused).
* Cleanup nuclear reactor code.
This autoloads the node above a solar array, so that its light value can be determined.
Previously, solar arrays in unloaded blocks would report an input of 0 to the switching station.
latex is being refined to rubber by drying and adding carbon pigments to strengthen the material
(which also turns it black)
it should not yield more rubber than its latex input, but it may be processed faster than ores
Make the generic processing machine code willing to complete more than
one processing cycle in one ABM cycle, and more generally to carry
over leftover processing effort after completing a processing cycle.
The src_time meta item now represents accumulated processing effort
(time multiplied by speed) in a scaled form (to retain fractions),
rather than just time in integral seconds. This affects the MV furnace,
with speed 4 and most recipe times being 3 s, and will be essential for
faster furnaces.
The switching station and supply converter only semantically connect to
cables in particular directions. Make them visually connect only in
the matching directions. This is done by special-casing in the cable
update logic. If more irregular items arise in the future, or the
existing items start to need facedir logic, this should be generalised
into something like the connect_sides system for pneumatic tubes.
The new API function is now renamed to pipeworks.tube_inject_item(),
so use it under that name. If it is not available, synthesise the new
API in terms of the old one.