Do not remove air and group:hot nodes instead of using a fixed list
Abort mining when encountering an unknown node
Add random to the smoke puff particle
Set mining laser tool range to 0
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.
To ensure that only rubber tree trunk nodes that are part of trees
regenerate, rather than those that are used as building blocks, check
that they are sufficiently close to rubber tree leaves. This replaces the
older rule that naturally-grown trunks regenerate (regardless of leaves)
and manually-placed trunks don't (even though manually building a tree
otherwise works). The detection of manually-placed trunks was in any
case broken for users of moretrees, because that mod fails to set the
flag signalling manual placement.
Incidentally also fix a bug that caused rubber tree branches (horizontal
trunk nodes) to turn vertical when regenerating latex. Rather than set
the complete node structure, only switch the type name, as does the tree
tap when emptying the node.
Make the use of cans more like the digging and placement of ordinary
nodes, and specifically make it much closer to the use of buckets.
The main change is that left-click with a can is now only used to take
liquid; placing liquid is now done with a right-click. This makes the use
of cans a lot less error-prone, compared to the old scheme of determining
the operation based on the type of node pointed to. Other changes are
that liquid placement is now permitted to replace any buildable_to node,
and the cans obey node protection.
Factor out the logic common to water and lava cans. Provide it in the
form of a technic.register_can() function, which can be called by other
mods to register cans for other liquids.
The low capacity of the prospector turned out to be annoying, while the
other limitations do not substantially detract from fun. Also adjust
recipe to include a blue energy crystal, to explain the source of the
charge capacity.
The new tool will say whether a target block type is present in a
specified region, to allow for more targeted digging. It is deliberately
quite weak, with several limitations: only stores enough charge for a
small number of shots; target can only be set by pointing at an example
node; range is limited; accuracy is less than 100%. Some of these
limitations should probably be ameliorated, but not entirely eliminated,
in the future when we have a better idea of game balance.
The inventory image is only a placeholder.
A fix for https://github.com/minetest-technic/technic/issues/137
Chainsaw drops are forced to pop above ground. Also, as asl suggested,
they must not end up too high on a ledge or a pillar.
This also cleans up the code style of chainsaw.lua.
If a mining drill is apparently applied to a non-pointable node, do
nothing rather than drilling as normal. This situation usually arises
from lag, where the news of a node having been drilled didn't reach the
user quickly enough and the user thereby applied the drill twice to the
same node. The second drill attempt would formerly consume charge and
then find that all the nodes it wanted to dig had already been removed.