青金石灯
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | RandomThings:lapisLamp |
| 类 | lumien.randomthings.Blocks.BlockLapisLamp |
| 字段名 | ModBlocks.spectreLamp(字段名与注册名不一致,ModBlocks.java:23) |
| 材质 | Material.redstoneLight(BlockLapisLamp.java:20) |
| 硬度 | 0.3F(:22) |
| 脚步声 | Block.soundTypeGlass(:23) |
| 实心 | 否,isOpaqueCube() 返回 false(:43-46) |
| 渲染 pass | 1(透明 pass,getRenderBlockPass(),:48-51) |
| 开关 | Blocks.LapisLamp(RTConfiguration.java:206) |
功能
青金石灯是一个不产生光照、只发光的装饰灯:randomDisplayTick 里调用的是 worldObj.updateLightByType(EnumSkyBlock.Block, ...),更新的是方块光照(BlockLapisLamp.java:34-36),所以它不靠自身 metadata 发光,而是像火把一样通过"光源方块"机制影响周围。
@Override
@SideOnly(Side.CLIENT)
public void randomDisplayTick(World worldObj, int posX, int posY, int posZ, Random rng) {
worldObj.updateLightByType(EnumSkyBlock.Block, posX, posY, posZ);
}
getRenderColor 开启 alpha 混合并返回纯白 16777215(:26-31),配合 getRenderBlockPass() = 1 实现半透明玻璃质感。
getLightValue 在本方块自身位置时会转发给该坐标上的方块(BlockLapisLamp.java:53-58),即它自身不遮光,由放置其上的其他方块决定亮度。
数值
| 数值名 | 值 |
|---|---|
| 渲染颜色 | 0xFFFFFF(getRenderColor 返回 16777215) |
| 渲染 pass | 1(透明) |
| 自身光照值 | 0(getLightValue 转发他人) |
| 光照类型 | 方块光照(EnumSkyBlock.Block) |
交互
| 触发 | 行为 |
|---|---|
| 放置 | 正常放置 |
| 破坏 | 掉落自身 |
| 混色 | 可被混色机器 处理 |
合成配方
isi
sls
isi
| 字符 | 物品 |
|---|---|
s |
玻璃(blockGlass) |
i |
铁锭(ingotIron) |
l |
青金石(gemLapis) |
一次产出 4 个(new ItemStack(ModBlocks.spectreLamp, 4, 0))。来源:Library/Recipes.java:235-246。