Is your feature request related to a problem?
If you're capturing chunk snapshots and only want to get block data from them (which seems like it would be fairly common) then having each snapshot perform light calculations every snapshot leaves performance on the table.
Describe the solution you'd like.
A performLightCalculations/doLightCalculations/etc boolean to the end of the existing public ChunkSnapshot getChunkSnapshot(boolean includeMaxBlockY, boolean includeBiome, boolean includeBiomeTempRain) method which would skip the light calculation section. A Preonditions.checkState call inside of CraftChunkSnapshot (similar to CraftChunkSnapshot#getHighestBlockYAt) would also likely be needed.
Describe alternatives you've considered.
A viable alternative would be to iterate through a chunk's blocks and capture their data the "old-fashioned" way. Chunk snapshots are supposed to make that process easier and more efficient, however - especially when doing processing off the main thread.
Other
No response
Is your feature request related to a problem?
If you're capturing chunk snapshots and only want to get block data from them (which seems like it would be fairly common) then having each snapshot perform light calculations every snapshot leaves performance on the table.
Describe the solution you'd like.
A
performLightCalculations/doLightCalculations/etc boolean to the end of the existingpublic ChunkSnapshot getChunkSnapshot(boolean includeMaxBlockY, boolean includeBiome, boolean includeBiomeTempRain)method which would skip the light calculation section. APreonditions.checkStatecall inside ofCraftChunkSnapshot(similar toCraftChunkSnapshot#getHighestBlockYAt) would also likely be needed.Describe alternatives you've considered.
A viable alternative would be to iterate through a chunk's blocks and capture their data the "old-fashioned" way. Chunk snapshots are supposed to make that process easier and more efficient, however - especially when doing processing off the main thread.
Other
No response