模块装配器(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() 取下一个。

相关条目