You nailed it.
I see you used cellular automata for the water. You have a specifics algorithm ?
I've tried few month ago Nobili cellular automata, it was sorth the hassle
Thanks! It's more inspired by cellular automata than a direct implementation. I treat the world as a pixel grid with gravity, and water as a single pixel particle. Each frame, particles check if they can move down, or sideways if blocked, and otherwise stay put. Pretty simple, but it holds up well enough on Pico-8 if you keep particle counts under control.