I make no compatibility claim with TFC. Doesn't that do it's own thing with water?
It has 3 types of water, but the most relevant are the salt water and the fresh water, by the way the only thing that tfc does (regarding this topic) is to have a config option that makes the water "finite", but this only translates in preventing you to use the bucket a second time on a water source/block... not very fancy at all lol
My god porting this to 1.12 is becoming an actual nightmare. The block registry system is out of whack, we have json based metadata (why), and now render states are json (WHY!!!), so trying to figure out porting FluidRenderer is going to make me go crazy