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