Supernova Engine
基本信息
com.mitchej123.supernova.light.engine.SupernovaEngine ——
抽象基类(public abstract class,非 final/interface),
定义光照引擎的内部数据结构操作契约。
抽象方法(共 13 个)
| 方法 | 行 | 职责 |
|---|---|---|
getEmptinessMap(Chunk) |
483 | 读空位图 |
setEmptinessMap(Chunk, boolean[]) |
485 | 写空位图 |
getNibblesOnChunk(Chunk) |
487 | 读半字节数组 |
setNibbles(Chunk, SWMRNibbleArray[]) |
489 | 写半字节数组 |
canUseChunk(Chunk) |
491 | 该 chunk 是否可操作 |
initNibble(int×3, boolean, boolean) |
493 | 初始化半字节存储 |
setNibbleNull(int×3) |
495 | 置空 |
propagateBlockChanges(Chunk, int×3) |
497 | 方块变化传播 |
checkBlock(int×3) |
499 | 检查方块 |
calculateLightValue(int×3, int expect) |
501 | 计算光照值 |
lightChunk(Chunk, boolean) |
503 | 整块照亮 |
这些方法把「光照数据存在哪」抽象掉 ——
SWMRNibbleArray既是 ChunkAPI 持久化载体, 也是非 ChunkAPI 模式下的实现。
4 个具体子类
| 子类 | 用途 |
|---|---|
SupernovaBlockEngine |
方块光(block light) |
SupernovaSkyEngine |
天光(sky light) |
SupernovaRGBEngine |
RGB 彩色引擎 |
ScalarBlockEngine / ScalarSkyEngine |
SCALAR 无色快速模式 |
见 Supernova RGB Engine、 Scalar Engine。
配套类
| 类 | 职责 |
|---|---|
SWMRNibbleArray |
半字节存储(SWMR 安全) |
PackedColorLightQueue / LightQueue |
光照传播队列 |
SafeBlockAccess |
安全读取方块(不触发加载) |
FaceOcclusion / FaceLightOcclusion |
面向遮蔽 |
相关条目
源码
src/main/java/com/mitchej123/supernova/engine/SupernovaEngine.java