caveats: in order to cleanly handle the entry panel, valve, and sensor
I had to rotate the valve and sensor models 90 degrees
so that their in-/outlet pipes point the same direction as the
entry panel.
This also enables proper handling of a valve or sensor turned vertically.
Some objects have rotation disabled entirely (as flipping them over/around makes
no sense)
When a valve is rotated, it is turned off automatically, to work around a glitch in
the rotation code.
The table lookup will fail if node.param2 is outside [0-3] which
is easily possible since there are several ways to modify param2
values of nodes. Force truncating param2 to always be 0-3 before
using it in a table lookup.
This should make it work more or less correctly with finite water.
also, fix a bug where a blocked spigot still looks like its pouring, and check
for blockages on every step.
It was just a minor logic error resulting from moving the water flowing code
into it's own file when I originally imported it. Many thanks to Mauvebic for
writing it!