Colored Translucency

基本信息

com.mitchej123.supernova.api.ColoredTranslucency 与 PositionalColoredTranslucency —— 供其他 mod 实现的逐通道透光接口。

接口 文件 抽象方法
ColoredTranslucency api/ColoredTranslucency.java int getColoredTransmittance(int meta)
PositionalColoredTranslucency api/PositionalColoredTranslucency.java int getColoredTransmittance(IBlockAccess, int meta, int x, int y, int z)

PositionalColoredTranslucency extends ColoredTranslucency, 位置相关版本必须同时实现 meta 版本。

语义:15 = 全透

返回值同样是 PackedColorLight.pack(r, g, b) 打包,但含义与发光接口相反:

值 含义
通道 15 该通道完全透明(不吸收光)
通道 0 该通道完全不透明
返回 0 三通道全不透明,等价全黑

这与原版 Block.lightOpacity 的「越大越不透明」是相反方向, 跨读时容易搞反。

位置相关的意义

彩色玻璃、彩色冰这类方块的透光率随朝向或邻接变化时, 必须实现位置相关版本;否则引擎只能拿到一个固定值。

与发光接口的对照

方面 Colored Light Source 本条目
注册表 LightColorRegistry TranslucencyRegistry
通道语义 越大越亮 越大越透
中性值 0(不发光) 0x0FFF(全透)

相关条目

源码

  • src/main/java/com/mitchej123/supernova/api/ColoredTranslucency.java
  • src/main/java/com/mitchej123/supernova/api/PositionalColoredTranslucency.java