private void SearchNext(World world, Position now) {
    if (SpawnMap.containsKey(now.getVisualityValue())) return;

    Block cb = Block.blocksList[UtilWorld.getBlockID(world, now)];
    String cz = cb == null ? "!@#@!" : cb.getClass().getSimpleName();

    if (UtilBlock.isEqualWoodBlocks(world, now, new Position(X, Y, Z))
        || AnimalCrossing.isLeaf(
            UtilWorld.getBlockID(world, now), UtilWorld.getBlockMetadata(world, now), cz)) {
      SpawnMap.put(now.getVisualityValue(), Boolean.valueOf(true));
      DataMap.put(
          now.getVisualityValue(),
          String.format(
              "%d:%d", UtilWorld.getBlockID(world, now), UtilWorld.getBlockMetadata(world, now)));

      UtilPosition.putAroundNextPositions(now, WideSearchQueue);
    } else {
      SpawnMap.put(now.getVisualityValue(), Boolean.valueOf(false));
    }
  }