方块混合器与混合方块
基本信息
方块混合器 Block Mixer
| 属性 |
值 |
| 注册名 |
malisisdoors:block_mixer |
| 显示名(en_US) |
Block Mixer |
| 类 |
net.malisis.doors.block.BlockMixer(继承 Block,实现 ITileEntityProvider) |
| TileEntity |
net.malisis.doors.entity.BlockMixerTileEntity(注册名 blockMixerTileEntity,Registers.java:353) |
| 材质 |
Material.iron(BlockMixer.java:41) |
| 硬度 |
3.0(BlockMixer.java:44) |
| 创造标签 |
Malisis' Doors(BlockMixer.java:43) |
| 槽位数 |
3(BlockMixerTileEntity.java:23-32) |
混合方块 Mixed Block
| 属性 |
值 |
| 注册名 |
malisisdoors:mixed_block |
| 显示名(en_US) |
Mixed Block |
| 类 |
net.malisis.doors.block.MixedBlock(继承 Block,实现 ITileEntityProvider) |
| 物品类 |
net.malisis.doors.item.MixedBlockBlockItem(Registers.java:345) |
| TileEntity |
net.malisis.doors.entity.MixedBlockTileEntity(注册名 mixedBlockTileEntity,Registers.java:354) |
| 材质 |
Material.rock(MixedBlock.java:47) |
| 硬度 |
0.7(MixedBlock.java:49) |
| 注册方式 |
GameRegistry.registerBlock(mixedBlock, MixedBlockBlockItem.class, ...)(Registers.java:343-347) |
| 注册条件 |
需 enableMixedBlocks = true(Registers.java:105) |
功能
两件套设备:混合器负责把两个方块"混合"成一份配方数据,产出混合方块物品;混合方块放置后同时显示所选两个方块的贴图——用于自定义涂装方块(如渐变墙、图案地板)。
混合器槽位
BlockMixerTileEntity 定义 3 个槽(BlockMixerTileEntity.java:23-32):
| 槽位 |
字段 |
类型 |
| 0 |
firstInput |
MixerSlot(内部类,BlockMixerTileEntity.java:103-105) |
| 1 |
secondInput |
MixerSlot |
| 2 |
output |
MalisisSlot,setOutputSlot() 标记为输出槽 |
混合方块放置
onBlockPlacedBy 要求手持物品是 MixedBlockBlockItem,否则直接返回不写入任何数据(MixedBlock.java:62-64)
- 通过
te.set(itemStack) 从物品 NBT 还原所选的两个方块(MixedBlock.java:67)
- 增强放置判定(
enhancedMixedBlockPlacement,默认 true):用 EntityUtils.getEntityFacing(player, true) 取得玩家视线方向,不潜行时取反方向,使方块朝向"你看着的那一面"而非"你贴着的那一面";结果写入 meta(MixedBlock.java:70-73)
- 关闭增强判定时退化为
world.notifyBlockChange(MixedBlock.java:74)
- 取回原方块:
getPickBlock 用 MixedBlockBlockItem.fromTileEntity(te) 重建原物品,因此可无损取回(MixedBlock.java:78-85)
- 光照透传:
getLightValue 返回两个来源方块光值的较大者(MixedBlock.java:87-94)
数值
| 数值名 |
混合器 |
混合方块 |
出处 |
| 硬度 |
3.0 |
0.7 |
BlockMixer.java:44、MixedBlock.java:49 |
| 材质 |
Material.iron |
Material.rock |
BlockMixer.java:41、MixedBlock.java:47 |
| 槽位数 |
3 |
不适用 |
BlockMixerTileEntity.java:23-32 |
| 光照值 |
不适用 |
max(block1, block2) |
MixedBlock.java:87-94 |
合成配方
方块混合器(Registers.java:350-351):
| 字符 |
物品 |
A |
铁锭 Items.iron_ingot ×8 |
B |
活塞 Blocks.piston ×2 |
混合方块无合成配方——它只能由混合器产出(grep -n 'mixedBlock' src/main/java/net/malisis/doors/Registers.java 中仅命中 336-347 的构造与注册行,无 addRecipe)。
相关条目
- 混合器 GUI -
BlockMixerGui 的 3 槽容器与渲染切换开关
- 模组配置 -
enableMixedBlocks 与 enhancedMixedBlockPlacement