液体伪装方块
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | RandomThings:fluidDisplay |
| 类 | lumien.randomthings.Blocks.BlockFluidDisplay |
| TileEntity | TileEntityFluidDisplay(BlockFluidDisplay.java:33) |
| 材质 | Material.glass |
| 硬度 | 0.7F(BlockFluidDisplay.java:26) |
| 贴图 | 无自有贴图;getIcon 动态返回流体图标(:37-48) |
| 开关 | Blocks.FluidDisplay(RTConfiguration.java:199) |
功能
液体伪装方块是单格的流体展示方块:它自身不存流体,而是渲染所在 TileEntity 中记录的流体贴图,因此可以做成看起来像水、岩浆或其他任意 Forge 流体的方块。
getIcon 的逻辑(BlockFluidDisplay.java:37-48)分三层:
- TileEntity 为 null、
getFluidName()为空串、或FluidRegistry.getFluid()查不到该流体 → 返回blockIcon te.flowing()为 false(静止)→ 返回FluidRegistry.getFluid(name).getIcon()- 否则(流动中)→ 返回
getFlowingIcon()
也就是说它能区分静止与流动两种图标状态,这是它与 高级液体伪装方块 的主要差别之一(后者按面区分)。
类直接继承 BlockContainer(而非本 mod 的 BlockContainerBase),并在自己构造函数里调用 GameRegistry.registerBlock(this, "fluidDisplay")(BlockFluidDisplay.java:28)。
数值
| 数值名 | 值 |
|---|---|
| 可展示流体数 | 不限(跟随 Forge 流体注册表) |
| 每面独立流体 | 否(整块共用一个 getFluidName()) |
| 图标状态 | 2 种(静止 / 流动) |
交互
| 触发 | 行为 |
|---|---|
| 右键 | 打开 GUI GuiIds.FLUID_DISPLAY 以外的交互,见类中 onBlockActivated |
| 破坏 | 掉落自身 |
合成配方
ggg
gbg
ggg
| 字符 | 物品 |
|---|---|
g |
玻璃板(矿物辞典 paneGlass) |
b |
玻璃瓶(Items.glass_bottle) |
一次产出 8 个(new ItemStack(ModBlocks.fluidDisplay, 8))。来源:Library/Recipes.java:154-163。
升级配方(无序):advancedFluidDisplay = fluidDisplay + gemLapis(Recipes.java:164-165)。
相关条目
- 高级液体伪装方块 - 每面独立流体 + 流体容器交互