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 的扩展器配方由 配方系统 的处理器之一提供。
相关条目
- Turret Base - 扩展器的作用对象
- Turret Parts - 配方中用到的 IO Bus 等部件