BlockEngine - LiXizhi/NPLRuntime GitHub Wiki
Block Engine
The block engines can manage multiple BlockWorld object.
BlockWorld
Each BlockWorld represents a block world with at most 32000x32000x256, where 256 is height of the world.
Each BlockWorld will dynamically and asynchronously load BlockRegion on demand.
BlockRegion
It manages 512x512x256 blocks, which are saved into a single file.
BlockChunk
It caches model and light Data for 16x16x16 region. Each chunk is converted and added to a queue into BlockRenderTask for sorting and rendering.
BlockLightGrid
It calculates sun and block lighting in a separate thread and save the result into BlockChunk for rendering.
BlockModel
BlockModel is usually cube 3D model, but it is not a 3D object directly used in rendering, instead it is actually used in BlockTemplate to provide rendering and physics data.