青金石灯

基本信息

属性 值
注册名 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。

相关条目