气态光影方块
基本信息
| 属性 | 值 |
|---|---|
| 方块数量 | 3(gaseousLight、gaseousShadow、nitorGas) |
| 抽象基类 | thaumic.tinkerer.common.block.BlockGas(abstract,继承 BlockMod,实现 ITTinkererBlock) |
| 注册位置 | TTRegistry.java:42-43(光/影)、TTRegistry.java:48(尼托) |
| 注册门槛 | 3 个均无条件注册 —— BlockGas.shouldRegister() 恒返回 true(BlockGas.java:140-142) |
功能
BlockGas 是一组无实体、可自上而下消散的气体方块:
- 材质
Material.air,setBlockBounds(0, 0, 0, 0, 0, 0)把碰撞盒压成零体积(BlockGas.java:37-41) setTickRandomly(true)启用随机刻(BlockGas.java:40)getRenderType()返回-1(BlockGas.java:54-56),isOpaqueCube()返回false(BlockGas.java:95)- 图标为空纹理:
blockIcon = IconHelper.emptyTexture(...)(BlockGas.java:48-52) updateTick()读取 meta,meta != 0时向 6 个正交相邻面传播meta - 1的递减层,并立即把自身 meta 置 0(BlockGas.java:59-76)。因此气体以「剩余层数」衰减,每格每 tick 减 1。placeParticle()在基类中是空实现,由子类覆写(BlockGas.java:78-81)
数值
| 物品 | 注册名 | Java 类 | 注册名来源 | 源码 |
|---|---|---|---|---|
| 气态光 | gaseousLight |
BlockGaseousLight |
BlockGaseousLight.java:45-46 |
TTRegistry.java:42 |
| 气态影 | gaseousShadow |
BlockGaseousShadow |
BlockGaseousShadow.java:45-46 |
TTRegistry.java:43 |
| 尼托气体 | nitorGas |
BlockNitorGas |
BlockNitorGas.java:103-104 |
TTRegistry.java:48 |
| 共享属性 | 值 | 来源 |
|---|---|---|
| 材质 | Material.air |
BlockGas.java:38 |
| 碰撞盒 | (0,0,0) → (0,0,0) |
BlockGas.java:39 |
| 随机刻 | 开启 | BlockGas.java:40 |
| 渲染类型 | -1 |
BlockGas.java:55 |
| 不透明 | 否 | BlockGas.java:95 |
| 碰撞盒查询 | getCollisionBoundingBoxFromPool(...) 覆写 |
BlockGas.java:125 |
对应物品形态
3 个方块各有一个可放置气体的物品形态,由 ItemGas 以单类多形态提供(TTRegistry.java:82,loadMetaItem):
| 物品形态 | 注册名 | 对应方块 |
|---|---|---|
| 本体(index 0) | gaseousShadowItem |
BlockGaseousShadow |
| meta 1 | gaseousLightItem |
BlockGaseousLight |
ItemGas 的两个构造分支由 ItemGas() 与 getMetaItems() 决定(ItemGas.java:45-52):默认构造指向 BlockGaseousShadow,getMetaItems() 额外产出一个指向 BlockGaseousLight 的实例。nitorGas 没有对应的 ItemGas 形态。
另有 ItemGasRemover(gasRemover,TTRegistry.java:83)用于移除气体。
研究
| 对象 | 研究键 | 键值 | 要素 | 父研究 |
|---|---|---|---|---|
| 气态光 | KEY_GASEOUS_LIGHT |
GASEOUS_LIGHT |
LIGHT 2 + AIR 1 | NITOR |
| 气态影 | KEY_GASEOUS_SHADOW |
GASEOUS_SHADOW |
DARKNESS 2 + AIR 1 + MOTION 4 | GASEOUS_LIGHT,且 setSecondary() |
| 气体移除器 | KEY_GAS_REMOVER |
GAS_REMOVER |
— | — |
| 尼托气体 | 无 | LibResearch 中无对应键 |
— | — |
两个气体研究都由物品而非方块提供:ItemGas.getResearchItem() 按 setBlock 分支构造(气态影 ItemGas.java:61-72,气态光 ItemGas.java:73-80),因此由 TTRegistry.postInit() 在遍历 itemRegistry 时注册,而非在遍历 blockRegistry 时。气态光的父研究键 NITOR 是裸字符串字面量,不对应 LibResearch 中的任何常量。
相关条目
- KAMI 材料与工具 - 同为流体/材料类物品
- 研究总览 - 气体相关研究键全表