Procedural animated texture generation/Water

==== Still water ====
Adapted from https://github.com/UnknownShadow200/ClassiCube/wiki/MInecraft-Classic-lava-animation-algorithm#water
Every frame, for each position in the still water texture array, the respective values for soup_heat, pot_heat and flame_heat are calculated as detailed below:
* 
* 
* 
* 
** 
Once the above arrays have been updated, for each pixel in the water texture, the color and alpha values are calculated based on soup_heat:
* 
* 
** 
** 
** 
** 
The red, green and blue values are then converted to bytes and assigned to the texture accordingly.
==== Flowing water ====
In addition, the flowing water texture also uses a spatial translation to give the appearance of movement. This transformation moves the flowing water texture downwards by one pixel after a fixed amount of time, wrapping the bottom layer of the texture back to the top.