Expanders

基本信息

属性 值
注册名(动力) openmodularturrets:expanderPowerTierOne … :expanderPowerTierFive
注册名(库存) openmodularturrets:expanderInvTierOne … :expanderInvTierFive
数量 10 个(动力 × 5 + 库存 × 5)
块类 openmodularturrets.blocks.expanders.BlockExpanderPowerTierOne … BlockExpanderPowerTierFive、BlockExpanderInvTierOne … BlockExpanderInvTierFive
TileEntity openmodularturrets.tileentity.expander.AbstractPowerExpander / AbstractInvExpander 及其 10 个等级子类
爆炸抗性 3.0F(全部 10 个方块,如 BlockExpanderPowerTierOne.java:21、BlockExpanderInvTierOne.java:25)
物品栏 库存扩展器有 9 格;动力扩展器无物品栏

功能

扩展器是附属在炮塔底座上的增量方块,必须紧贴 Turret Base 的某个面才能生效。AbstractPowerExpander.setSide() / AbstractInvExpander 用 4 个方向判断(+X / -X / -Y / +Y)记录朝向与旋转角度(AbstractPowerExpander.java:17-45,baseFitRotationX / baseFitRotationZ)。

Base Power Expander 给底座追加 RF 容量。底座在 updateEntity 中调用 getMaxEnergyStorageWithExtenders()(TurretBase.java:157-178)重算容量,值为「基础容量 + TurretHeadUtil.getPowerExpanderTotalExtraCapacity(世界, x, y, z)」。模组自带 wiki 说明:“Adds RF capacity to a turret base.”

Base Inventory Expander 给底座追加 9 格库存空间。AbstractInvExpander.java:24 分配 this.inv = new ItemStack[9];模组自带 wiki 说明:“Adds 9 slots of inventory space that the turret base can use. Each slot can only accept a max stack size of …”。TurretHeadUtil 中有 7 处遍历 expander 物品栏的循环(TurretHeadUtil.java:382,472,483,494,505,516,527),供弹判定会一并扫描扩展器。

GUI:库存扩展器有独立 GUI(ID 7,ExpanderInvGui + ExpanderInvContainer),布局见 Turret Base GUI。动力扩展器没有 GUI。

交互距离:AbstractInvExpander 的 isUseableByPlayer(AbstractInvExpander.java:132)要求玩家到方块中心的距离平方 < 64(即 8 格内)。

数值

动力扩展器追加容量

等级 追加 RF 容量 配置键
Tier 1 250 Expanders/Power expander tier one capacity
Tier 2 25 000 Expanders/Power expander tier two capacity
Tier 3 75 000 Expanders/Power expander tier three capacity
Tier 4 250 000 Expanders/Power expander tier four capacity
Tier 5 5 000 000 Expanders/Power expander tier five capacity

来源:ConfigHandler.java:307-315。

爆炸抗性

全部 10 个扩展器方块的 setResistance(3.0F) 是硬编码字面量(10 处 grep 'setResistance' src/ 命中,全部为 3.0F),与底座那种可配置值不同。

交互

触发 行为
放置 需紧贴炮塔底座;setSide() 决定其朝向与旋转
右键(库存扩展器) 打开 GUI ID 7
右键(动力扩展器) 无 GUI
自动化 库存扩展器的 9 格供弹/存货空间由炮塔的供弹扫描逻辑读取(TurretHeadUtil)
破坏 无 getDrops 覆写(`grep 'getDrops

合成配方

Tier 1 的两种扩展器是固定配方(RecipeHandler.java:98-126,不随已加载模组变化),两者布局相同、材料不同:

ABA
DCD
ADA
字符 物品
A 圆石
B 木板(物品字典 plankWood)
C 动力版=红石粉;库存版=箱子
D IO Bus

来源:RecipeHandler.java:100-111(动力,'C', net.minecraft.init.Items.redstone)与 RecipeHandler.java:115-126(库存,'C', net.minecraft.init.Blocks.chest)。

Tier 2 – Tier 5 的扩展器配方由 配方系统 的处理器之一提供。

相关条目