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
Water flow around a gen is shown more or less directly by the water's
param2, range 0 to 15, so four sides could total 60. Cap the result to 45
so that three sides' worth of full flow (or four sides at reduced flow) still
registers as "100%", and raise the maximum outpu to 2250 EU.
Radiation now slowly damages you for a while after exposure,
with the effect's time and intensity proportional to the
amount of radiation received. The radioactivity of some
items is reduced to account for the increased damage.
This simplifies radioactivity by removing the 1000 and 0.25 multipliers.
It also increases the effectiveness of protection (I think it was too low
before -- most of the advantage of adding protective layers was just from
the increased distance).
The reactor originaly used a stainless steel shield only
because lead wasn't yet available. Stainless steel shields
are automatically converted to lead shields for legacy reasons.
Windmills always span more than one mapblock, so even with a switching station next to the generators, they will stop working if unloaded due to the windmill check failing to handle CONTENT_IGNORE of the frames at the foot of the windmill, unless a second switching station would be placed there.
The commit assumes, that a user has to load a block to modify it, and thus unloaded blocks to have the same windmill frame state as before.
This also makes technic_run for windmills a little faster by being able to skip some unnecessary node lookups and generally avoiding creation of 20 tables per windmill per step.
This is an algorithm that I designed myself. It fixes an
issue with the old code where it would be more eager to
move in some directions rather than others. This bug
resulted in, eg, a lead block on a radiation source's
+x side protecting you when you were directly overhead.