Translucency Registry
基本信息
com.mitchej123.supernova.api.TranslucencyRegistry ——
方块**透光率(transmittance / absorption)**注册表,
决定彩色光穿过方块时被吸收多少。
注册
| 方法 | 行 | 签名要点 |
|---|---|---|
registerTransmittance(Block, int r, int g, int b) |
40 | 按方块,不分 meta |
registerTransmittance(Block, int meta, int r, int g, int b) |
54 | 按方块 + meta |
查询(4 个)
| 方法 | 行 | 说明 |
|---|---|---|
getPackedAbsorptionNoInterface(Block, int meta) |
66 | 不要 IBlockAccess |
getPackedAbsorptionNoInterface(int blockId, Block, int meta) |
73 | 同上,多传 id |
getPackedAbsorption(IBlockAccess, Block, int meta, int x, int y, int z) |
95 | 带世界坐标(可考虑位置) |
getPackedAbsorptionCached(int blockId, int meta) |
114 | 走缓存 |
缓存控制
markUncacheable(int blockId)(第 123 行)——
把某方块标记为不可缓存,用于位置相关或动态变化的透光率
(如岩浆、水流),避免缓存导致渲染陈旧。
「absorption(吸收)」与「transmittance(透射)」是两个视角: 注册用透射率,查询返回打包后的吸收量。
与颜色注册的差异
Light Color Registry 管发光颜色,
本类管透光行为 —— 两者独立但都在 api 包。
配套
DefaultTranslucency.register() 提供默认透光率预设,
见 Default Colors 与 Translucency。
相关条目
源码
src/main/java/com/mitchej123/supernova/api/TranslucencyRegistry.java