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