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.
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.
a large amount of the 16x16 textures were mine but when RealBad put them back in the information on them mustve been scattered to the winds, just fixing this.
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.
have them deactivated by default due to a larger collection of associated issues
including but not limited to
* #170
* #216
* item duplication involving templates
* runaway machines
* traversal loop issues with huge machines leading to lag-outs
Note: this required renaming the base node name for the oblate spheroid
object, which previously had been named simply "sphere". The result is
that all such nodes in an old world will change to actual spheres.
Since this includes a formspec change, machines will have to be dug and
re-placed to get the new program button to show up, and/or if the image
on the Oblate Spheroid button shows wrongly.
Copy the textures made by RealBadAngel (under WTFPL) from unified inventory to technic to avoid minetest not finding them when unified inventory is not installed.
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
Adds a cache to the quarry in order to reduce load and send larger stacks through pipes instead of just single items. Coin tossing ensures the cache gets purged around every 200 seconds. The interval isn't fixed in order to prevent material spikes from multiple quarries which got loaded simultaneously. When the cache is full, or the quarry finished, it is purged too.
Don't load the whole digging area when only a small piece is relevant.
Also, move the (time expensive) check whether the air above a block is free to the last position, which spares unneccessary checks when multiple quarries are placed together, or a quarry has to loop over air for another reason.
Squeeze the range of material shielding values. The strongest shielding
materials get weaker, and weaker shielding materials, especially low-end
ones such as dirt, get stronger. The radioactivity of the active
reactor core is increased so that the standard shielding is (still)
only narrowly sufficient.
Make the "radioactive" group value be the safe distance in millimeters
rather than meters, to allow for intermediate values. Use such
intermediate values for the uranium blocks, using the existing formula
with this finer quantisation. All other radioactive nodes retain their
existing radioactivity exactly.
Tool workshop can now accept tools to repair via tube. It has upgrade
slots. Battery upgrade reduces its power consumption. Tube upgrade
makes it eject fully-repaired (or unrepairable) items via tube.
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 quarry used to get stuck when it encountered an undiggable node.
Change it to skip past that node, digging whatever later stuff it can.
Necessarily, the current digging position becomes semantically-significant
state: it is no longer sufficient to search the quarry cuboid from the top
on each iteration. The current digging height is reported in the quarry's
interaction form, and can be reset to the top using a button on the form.
Where there is a non-air node within the quarry directly above the
next node to dig, it blocks the quarry's access to that node, even if
everything involved is diggable. Thus an undiggable node casts a shadow
of undug nodes below it. Resolving undiggability of a node is a major
reason to use the restart button.
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.