public void HandleCollision(List<Model.Collision> collisions, ref Character chara)
        {
            chara.mCollisionStatus = Displayable.CollisionStatus.NONE;

            chara.EnableFreeFall();
            foreach (Model.Collision collision in collisions)
            {
                if (!collision.BlocksMovement) continue;
                switch (collision.Status)
                {
                    case Displayable.CollisionStatus.BOTTOM:
                        chara.DisableFreeFall();
                        if (!chara.JumpRequest)
                        {
                            chara.mMovementState = Character.State.Idle;
                            chara.mCurrentJumpState = Character.State.Idle;
                        }
                        break;
                    case Displayable.CollisionStatus.LEFT:
                        chara.mCollisionStatus = Displayable.CollisionStatus.LEFT;
                        chara.mMovementState = Character.State.Idle;
                        break;
                    case Displayable.CollisionStatus.RIGHT:
                        chara.mCollisionStatus = Displayable.CollisionStatus.RIGHT;
                        chara.mMovementState = Character.State.Idle;
                        break;
                    case Displayable.CollisionStatus.TOP:
                        if (chara.mCurrentJumpState == Character.State.Jumping)
                        {
                            chara.mCurrentJumpState = Character.State.Falling;
                        }
                        chara.EnableFreeFall();
                        break;
                    case Displayable.CollisionStatus.NONE:
                        chara.EnableFreeFall();
                        break;
                }
            }
        }