code: private CollisionResult computeCollision(CollisionCategory category, double ox, double oy, double x, double y)
      {
          final Tile tile = map.getTileAt(getPositionToSide(ox, x), getPositionToSide(oy, y));
          if (tile != null)
          {
              final TileCollision tileCollision = tile.getFeature(TileCollision.class);
              if (containsCollisionFormula(tileCollision, category))
              {
                  final Double cx = getCollisionX(category, tileCollision, x, y);
                  final Double cy = getCollisionY(category, tileCollision, x, y);
                  // CHECKSTYLE IGNORE LINE: NestedIfDepth
                  if (cx != null || cy != null)
                  {
                      return new CollisionResult(cx, cy, tile);
                  }
              }
          }
          return null;
      }
docs: Compute the collision from current location.
  
  @param category The collision category.
  @param ox The current horizontal location.
  @param oy The current vertical location.
  @param x The current horizontal location.
  @param y The current vertical location.
  @return The computed collision result, <code>null</code> if none.