Neighbors CollidedFaceAt(Vector3 cp, TileBounds b)
{
Vector3 collisionPoint = cp - b.center;
Vector3 sz = b.size;
Neighbors collidedFace = Neighbors.None;
if(Roughly(collisionPoint.x, sz.x/2)) {
collidedFace = Neighbors.BackRight;
} else if(Roughly(collisionPoint.x, -sz.x/2)) {
collidedFace = Neighbors.FrontLeft;
} else if(Roughly(collisionPoint.z, sz.z/2)) {
collidedFace = Neighbors.BackLeft;
} else if(Roughly(collisionPoint.z, -sz.z/2)) {
collidedFace = Neighbors.FrontRight;
} else if(collisionPoint.y < 0) {
collidedFace = Neighbors.Bottom;
} else {
collidedFace = Neighbors.Top;
}
return collidedFace;
}