智能泵(Smart Pump)

基本信息

属性 值
注册名 utilitiesinexcess:smart_pump
类 com.fouristhenumber.utilitiesinexcess.common.blocks.BlockSmartPump(extends BlockContainer implements IWailaDataProvider)
材质 / 硬度 Material.rock / 10.0(BlockSmartPump.java:18-22)
TileEntity TileEntitySmartPump(ModTileEntities.java:91)
纹理 侧面 smart_pump,顶/底面 smart_pump_top(BlockSmartPump.java:30-32)
开关 BlockConfig.smartPump.enableSmartPump(默认 true)

功能

智能泵是一种大范围低卡顿的流体收集器。它必须直接放在流体方块上方并接受 RF 供电,随后在以自身为中心、半径 5 区块的菱形区域(共 61 个区块)内逐块把流体替换成石头,并把收集到的流体先输出到正上方的罐子。

它的设计目标是避免触发方块更新——传统流体自动化靠方块更新传播,在大范围工作时会产生大量区块重载;智能泵直接改写方块状态,因此被描述为"lag-light"(uie.nei.infopage.smart_pump.1)。

区块调度是"逐块接力"的:CHUNK_OFFSETS 是一个固定的 61 项偏移数组(按距离由近及远排列),机器一次只加载一个工作区块,处理完就释放并加载下一个(TileEntitySmartPump.java:41-46, 155-167)。工作期间机器自身所在区块也保持加载。

实现 IWailaDataProvider,Waila tooltip 会显示当前正在处理的区块与完成状态(uie.gui...smart_pump.waila.working / .finished,en_US.lang:229-230)。

数值

配置项 默认值 说明
smartPumpEnergyStorage 10000 能量容量,@Config.RangeInt(min = 1)
smartPumpEnergyUsePerBlock 100 每处理一个方块的能耗
smartPumpStallCooldown 200 停滞冷却(tick)

来源:BlockConfig.java:165-177。三个数值均可配置,启用泵本身需 enableSmartPump = true(默认 true)。

固定常量 值
工作区域半径 5 区块(菱形)
工作区块总数 61(CHUNK_OFFSETS 数组长度)
停滞判定 worldObj.getTotalWorldTime() % smartPumpStallCooldown == 0(TileEntitySmartPump.java:63)

NBT 持久化字段:chunkX、chunkZ(TileEntitySmartPump.java:181-182, 197-198)。

交互

触发 行为
放置 必须放在流体方块正上方才有效
输入 RF 从内部储能扣除,每方块 smartPumpEnergyUsePerBlock
正上方有 IFluidHandler 优先把收集到的流体输出到该罐子(TileEntitySmartPump.java:67)
Waila 悬停 显示正在处理的区块 / “Finished draining”
区块调度 逐块接力加载与释放,避免整片区域同时加载

合成配方

产出 2 个,两种配方原料相同、仅水桶与木桶位置互换(RecipeLoader.java:110-147):

odo       odo
lew  或   wel
opo       opo

o = 装饰方块 meta 5(Ender-Infused Obsidian)、d = 钻石、l = 岩浆桶、e = 末影之眼、w = 水桶、p = 铁镐。

开关:RecipeConfig.enableSmartPumpRecipe(默认 true)。

相关条目