法力池
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | Botania:pool(setBlockName(LibBlockNames.POOL),BlockPool.java:65) |
| 方块类 | vazkii.botania.common.block.mana.BlockPool |
| TileEntity | vazkii.botania.common.block.tile.mana.TilePool |
| 材质 | Material.rock(BlockPool.java:61) |
| 硬度 | 2.0(BlockPool.java:62) |
| 爆炸抗性 | 10.0(BlockPool.java:63) |
| 脚步声 | soundTypeStone(BlockPool.java:64) |
| TileEntity 接口 | IManaPool, IDyablePool, IKeyLocked, ISparkAttachable, IThrottledPacket,TilePool.java:60 |
功能
法力池(Mana Pool)是 Botania 魔力网络的标准收集器,即 IManaCollector 的参考实现,也是整套魔力量系统的中心节点。生成花把法力注入池,池再通过散播器(Mana Spreader)把法力送往其他方块。
池是一个可着色的液体方块:TilePool 实现了 IDyablePool(可用染料染色),并保存 TAG_COLOR。它还实现了 ISparkAttachable(可接手法力火花)与 IKeyLocked(可用红石键锁定),IThrottledPacket 用于限制网络包发送频率。
数值
| 数值名 | 值 | 来源 |
|---|---|---|
| 标准容量 | 1 000 000 mana | TilePool.MAX_MANA,TilePool.java:62 |
| 稀释容量 | 10 000 mana | TilePool.MAX_MANA_DILLUTED,TilePool.java:63 |
| 容量选择规则 | manaCap = getBlockMetadata() == 2 ? MAX_MANA_DILLUTED : MAX_MANA |
TilePool.java:189 |
| 硬度 | 2.0 | BlockPool.java:62 |
| 爆炸抗性 | 10.0 | BlockPool.java:63 |
meta = 2 的变体即稀释法力池(Mana Pool Diluted),容量只有标准池的 1%,用于对容量敏感的场合。
交互
| 触发 | 行为 |
|---|---|
| 放置 | 注册为 Botania:pool,Material.rock 质地 |
| 相邻生成花 | 花通过 ManaNetworkEvent.addCollector 注册后自动向池注入法力(IManaCollector 实现契约) |
isFull() |
返回 true 时停止接收法力爆裂(IManaReceiver 接口) |
| 染色 | 实现 IDyablePool,颜色存于 NBT TAG_COLOR(TilePool.java:68) |
| 红石键 | 实现 IKeyLocked,NBT TAG_INPUT_KEY / TAG_OUTPUT_KEY(TilePool.java:73-74) |
| 破坏 | 法力随之丢失 |
NBT 标签共 10 个:mana、knownMana、outputting、color、manaCap、canAccept、canSpare、fragile、inputKey、outputKey(TilePool.java:65-74)。
合成配方
无法核实 —— 本次核查未读取 ModCraftingRecipes 中 pool 对应的配方行,不做推断。