code: private IBlockState checkMerge(ItemStack itemStack, EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ)
  	{
  		IBlockState state = world.getBlockState(pos);
  		IMergedBlock mergedBlock = getMerged(state);
  		if (mergedBlock == null // || (offset && !mergedBlock.doubleCheckMerge())
  				|| !mergedBlock.canMerge(itemStack, player, world, pos, side))
  			return null;
  
  		return mergedBlock.mergeBlock(world, pos, state, itemStack, player, side, hitX, hitY, hitZ);
  	}
docs: Checks whether the block can be merged with the one already in the world.
  
  @param itemStack the item stack
  @param player the player
  @param world the world
  @param pos the pos
  @param side the side
  @param hitX the hit X
  @param hitY the hit Y
  @param hitZ the hit Z
  @return the i block state