Chunk Tasks

基本信息

com.mitchej123.supernova.light.ChunkTasks —— 单个区块待处理光照任务的数据包。

字段(全部 public final)

字段 行 类型 说明
chunkCoordinate 13 long 区块坐标(打包成一个 long)
changedPositions 14 IntOpenHashSet 变化过的方块位置
changedSectionSet 17 Boolean[] 哪些 section 有变化
initialLightChunk 19 Chunk 待做初始光照的区块
initialLightEmptySections 20 Boolean[] 初始光照的空 section
queuedEdgeChecks 23 IntOpenHashSet 已排队的边缘检查
lightGeneration 26 long 光照代数(版本号)

三个 Set/Array 的分工

成员 粒度 用途
changedPositions 方块 精确到坐标的变更点
changedSectionSet section(16³) 粗粒度跳过的判断依据
queuedEdgeChecks 边界对 区块边界的光照检查去重

IntOpenHashSet(Trove)用于去重, 属「必须用集合运算而非计数」的场景 —— 同一位置被多次标记时不能重复处理。

lightGeneration

单调递增的代数标记,配合 World Light Manager 的 Lane 丢弃过期代的任务。

相关条目

源码

  • src/main/java/com/mitchej123/supernova/light/ChunkTasks.java