模块装配器(Module Assembler)
基本信息
| 属性 | 值 |
|---|---|
| 控制器方块 | galaxia:module_assembler_controller(BlockModuleAssembler) |
| TileEntity | com.gtnewhorizons.galaxia.registry.rocketmodules.tileentities.TileEntityModuleAssembler |
| 基类 | GalaxiaMultiblockBase<TileEntityModuleAssembler> |
| 结构定义 | TileEntityModuleAssembler.java:71-87(STRUCTURE_DEFINITION) |
| 尺寸 | 3 × 3 × 5 |
字符含义
| 字符 | 方块 | 注册名 |
|---|---|---|
~ |
控制器 | galaxia:module_assembler_controller |
C |
锈蚀面板 | galaxia:rusty_panel |
T |
龙门吊终端 | galaxia:gantry_terminal(否则退化为 rusty_panel) |
结构形状(源码原样,未 transpose)
new String[][] { { "CCC", "CCC", "CCC" },
{ "C C", "T T", "C C" },
{ "C C", "C C", "C C" },
{ "C C", "C C", "C C" },
{ "CCC", "C~C", "CCC" } }
CCC CCC CCC
C C T T C C
C C C C C C
C C C C C C
CCC C~C CCC
- 整体为 3×3 截面的空心箱体
- 第 2 行有 2 个
T(龙门吊终端) 位 - ⚠️ 与发射井同理,
TileEntityModuleAssembler只有一个gantryTerminal字段 (TileEntityModuleAssembler.java:50),setGantryTerminal逐个覆盖 (TileEntityModuleAssembler.java:80),因此 2 个位里实际只有最后扫到的那个生效。 - 控制器
~位于最后一层的中间 - 除底层的
CCC与顶层的CCC外,其余为C C(仅四角有方块),形成三面镂空的壳体
本结构是 Galaxia 5 个多方块中最小的一个(3×3×5),与发射井的 12×8 相比,装配器属于可批量复制的小型设施。
终端连接
if (te instanceof TileEntityGantryTerminal terminal) {
assembler.setGantryTerminal(terminal);
terminal.connectAssembler(assembler);
return true;
}
终端通过 connectAssembler 与装配器绑定,与发射井的 connectSilo 是两套独立连接。
工作流程(updateEntity,第 100 行起)
resolvePendingTaskCoords() // 解析待处理任务的坐标
↓
activeTask != null ?
├─ 是 → assemblyTicksRemaining--
│ └─ ≤0 → GantryAPI.injectModule(activeTask.part(), this, activeTask.targetSilo(), false)
│ activeTask = null; markDirty(); tryStartNextTask()
└─ 否 → tryStartNextTask() // 空闲时取下一个任务
装配器串行处理任务:一次只装配一个模块,完成后调用 tryStartNextTask() 取下一个。
相关条目
- 发射井(Silo) - 接收装配模块的目标结构
- Gantry Terminal(龙门吊终端) - 连接装配器与发射井