Move to edge checks for loading and generating light
While it might appear at first glance that the vanilla
chunk system makes a guarantee that 1 radius chunks are
loaded for lighting, this isn't actually the case. In fact,
no chunks could be loaded! And yet, the light function is
actually required to be completed still! The only way
we can do this is with edge checks.
In the 1.17 snapshots, it looks like chunk loading doesn't
load 1 radius chunks - which means our logic to require 1 radius
just has to go. In order to ensure that this new behavior
doesn't cause lighting problems on chunk edges, chunk loading
now does edge checks.
This fixes some rare light engine crashes.
1.17 snapshot version
1.17 should work just fine, the amount of changes required to update were basically minimal.
Please note when testing 1.17 that the maximum world difference from top to bottom is 512 blocks - there are technical problems in the vanilla snapshots preventing a larger difference from being used, and attempting to do so will result in totally broken clientside chunk loading.