Collisions

[WIP]

Minecraft's collision physics is very simplistic in nature, yet it contains many glitches.

As a reminder, Minecraft's physics is updated 20 ticks per second. The player's movement and collisions are calculated once every tick.

Order of collisions and X/Z Facing
Movement is not checked linearly: instead, the game does # steps:


 * Move the player along the Y axis until there is a vertical collision. In that last case, if the player's Y speed is negative,
 * Move the player along the X axis until there is a horizontal collision.
 * Move the player along the Z axis until there is a horizontal collision.
 * If a horizontal collision was detected, we know a wall is blocking the player's path, but perhaps it's low enough that the player can simply.
 * The game does another calculation to see if the player could go further when taking stepping into account.
 * Otherwise, the wall is considered too tall to step onto.
 * End