A generalised lattice Boltzmann method with block-structured adaptive mesh refinement