We should take a mapgen.BlockSource rather than World, this allows us to move this code to the physics package.