I am puzzled by what you are comparing to what? I dont see that you need to determine current direction.
If, in an automotive charging system, the 6-cell lead-acid battery terminal voltage is below ~12.8V, then the battery is not being charged; it is just that simple. This could be because the electrical load is too high for a given RPM (idling at a traffic light), or because the charging system has failed.
The "not-charging" idiot lamp (as I call it) that was used with mechanical generator and alternator regulators is still basically comes down to light the lamp if the voltage at the battery is less than X. The only difference with doing it with the lamp vs using a voltage reference and a comparator driving a LED is the sharpness of the knee where the visual indication begins.
There is no difference in operation between a circuit using discrete parts: (Zener + LM393) or using the TL431, except parts count.
If you want a softer knee to make it more like the OEM lamp, then we can devise a circuit that uses a lamp, transistor and a Zener instead of a LED driven by a comparator with a Zener Reference.
Measuring the current in/out of the battery using a shunt is not required unless you want to put a zero-center ammeter in the circuit like my airplanes have...