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.javasrc/main/java/com/mitchej123/supernova/api/PositionalColoredTranslucency.java