Você já codificou algo parecido com:
if(isOpen) {
} else if (isOpening){
} else if(isClosed) {
}
...
Leia esse código em voz alta. Sério, faça alguma depuração de patinho de borracha . Você quase definitivamente disse isso:
if(itIsOpen) {
} else if (itIsOpening) {
} else if(itIsClosing) {
}...
nomeie suas variáveis booleanas com “it”, e seu código agora é legível!