Expander TileEntity
基本信息
| 属性 | 值 |
|---|---|
| 抽象基类 | openmodularturrets.tileentity.expander.AbstractPowerExpander、AbstractInvExpander |
| 动力子类 | ExpanderPowerTierOneTileEntity … ExpanderPowerTierFiveTileEntity |
| 库存子类 | ExpanderInvTierOneTileEntity … ExpanderInvTierFiveTileEntity |
| 注册名 | expanderPowerTierOne – expanderPowerTierFive、expanderInvTierOne – expanderInvTierFive |
| 注册数量 | 10 个(TileEntityHandler.java:52-61) |
| 父类 | openmodularturrets.tileentity.TileEntityOMT |
功能
两类扩展器的 TileEntity 都做同一件事:贴附到 Turret Base 上,然后把能力叠加上去。
贴附与朝向
AbstractPowerExpander.setSide() 逐个检查 +X / -X / -Y / +Y 四个方向是否有 TurretBase,命中即写入 baseFitRotationX / baseFitRotationZ 并置 hasSetSide = true(AbstractPowerExpander.java:17-45):
| 底座方向 | baseFitRotationX |
baseFitRotationZ |
|---|---|---|
| +X | 0F | 4.705F |
| -X | 0F | 1.56F |
| -Y | 1.56F | 4.705F |
| +Y | 4.705F | 0F |
AbstractPowerExpander
不持有物品栏,唯一的公开字段就是上述两个旋转值与 private int tier。它的价值体现为被查询:底座 TurretBase.getMaxEnergyStorageWithExtenders()(TurretBase.java:157-178)调用 TurretHeadUtil.getPowerExpanderTotalExtraCapacity(world, x, y, z) 汇总相邻扩展器的容量并加到自身最大储能上。
AbstractInvExpander
持有 private final ItemStack[] inv = new ItemStack[9](AbstractInvExpander.java:24)—— 固定的 9 格,不随等级变化,等级只决定总追加容量。附加容量读自 Expanders/Power expander tier one capacity … tier five capacity(见 Expanders 数值表)。
炮塔的供弹扫描会一并遍历扩展器:TurretHeadUtil 中有 7 处 for (int i = 0; i < exp.getSizeInventory(); i++) 循环(TurretHeadUtil.java:382,472,483,494,505,516,527)。
isUseableByPlayer 要求玩家到方块中心的距离平方 < 64(即 8 格内,AbstractInvExpander.java:132)。isItemValidForSlot 覆写为对红石反应堆与回收附加件的判定分支(AbstractInvExpander.java:136)。
存档 writeToNBT / readFromNBT 用标准 tag.setByte("Slot", ...) 形式序列化 9 格(AbstractInvExpander.java:47-67)。
数值
| 数值名 | 值 |
|---|---|
| 库存扩展器格数 | 9(固定,AbstractInvExpander.java:24) |
| 动力扩展器追加容量 | 250 / 25 000 / 75 000 / 250 000 / 5 000 000 RF(Tier 1 – 5) |
| 玩家交互距离平方上限 | 64 |
| 方块爆炸抗性 | 3.0F(全部 10 个方块) |
交互
| 触发 | 行为 |
|---|---|
| 右键(库存扩展器) | 打开 GUI ID 7(ExpanderInvGui / ExpanderInvContainer) |
| 右键(动力扩展器) | 无 GUI |
| 自动化 | 库存扩展器 9 格被炮塔供弹逻辑读取;无 ISidedInventory 覆写,不接受管道直接访问 |
相关条目
- Expanders - 对应方块与追加容量配置
- Turret Base TileEntity - 消费扩展器容量的宿主
- Turret Base GUI - GUI ID 7 的布局