How to make a door open in both ways depending of player's location?

Hi everyone !

I have a little problem with my game. I’ve made a simple door system that works fine but I need it to work on both ways, so the player always open in front. I’ve already find the way to detect where is the player with the door but I can’t figure out one thing :

-For a door, there is “3” states, right ? One at the middle, one open at the top, and one open at the back (see image)

If the player are in front of the door and he press E , he can just pass by “Flipflop” node by 1 to 2. If he want to close that door it return to 1.

BUT, if the player are beside the door (from the other side) and the door are already “2”, he need first to close it “1”, and then open it “3”. And I don’t know how to do that.

I’ve use a “dot vector math” solution to detect where is the player, but can’t figure out how to make thses states and be able to close and open the door wherever I am. Thank you in advance !