Chunk Light Helper
基本信息
com.mitchej123.supernova.light.ChunkLightHelper —— RGB ↔ 原版亮度的桥接层。
原版只有单通道 NibbleArray,Supernova 是 R/G/B 三组 SWMRNibbleArray,
两者互转都在这里。
方法
| 方法 | 行 | 说明 |
|---|---|---|
hasSavedBlockData(SWMRNibbleArray[] blockR, ExtendedBlockStorage[]) |
17 | 是否已有存档数据(避免重复导入) |
importVanillaSky(SWMRNibbleArray[] skyR/G/B, ...) |
31 | 原版天光 → RGB |
importVanillaBlock(SWMRNibbleArray[] blockR/G/B, ...) |
46 | 原版方块光 → RGB |
seedVanillaSection(ExtendedBlockStorage, SWMRNibbleArray[] skyR/G/B, ...) |
61 | 首次载入时播种 |
visibleData(SWMRNibbleArray) |
121 | 提取可见数据(配合 VISIBLE_* 状态标记) |
maxIntoVanilla(NibbleArray, byte[] r/g/b, int minByte, int maxByte, ...) |
126 | RGB → 原版(取各通道最大值) |
syncSkyToVanilla(...) |
144 | RGB 天光回写原版 |
三通道 → 单通道的规则
maxIntoVanilla 的名字点明了策略:取 R/G/B 的最大值
写回原版 NibbleArray。这样在不支持彩色的环境(SCALAR 模式、
或不支持的渲染管线)里,方块仍能以「最亮通道」正确变亮,而不会偏色发暗。
minByte / maxByte 参数用于限定写入的字节范围。
与 SWMRNibbleArray 的配合
visibleData(SWMRNibbleArray) 依赖
SWMRNibbleArray 的 4 个状态标记
(VISIBLE_ABSENT / ZERO / FULL / DATA)跳过空/满 section。
存档互操作
hasSavedBlockData 是「是否需要从原版导入」的判据 ——
避免把已存好的 RGB 数据用原版单通道数据覆盖。
相关条目
源码
src/main/java/com/mitchej123/supernova/light/ChunkLightHelper.java