Currently we just check if the velocity is 0 in the y direction, and that will work almost 100% of the time, but it is possible that an entity could hit 0 y velocity at the peak of a jump (though unlikely that even at 60fps they would hit exactly 0, it could happen).
Also it is strange that calcVelocity is called before apply velocity when we used values calculted in apply velocity...
Currently we just check if the velocity is 0 in the y direction, and that will work almost 100% of the time, but it is possible that an entity could hit 0 y velocity at the peak of a jump (though unlikely that even at 60fps they would hit exactly 0, it could happen).
Also it is strange that calcVelocity is called before apply velocity when we used values calculted in apply velocity...