FMP 移动器(ForgeRelocation Tile Mover)

基本信息

属性 值
类型 特殊机制(结构搬运注册项)
注册 API ForgeRelocation RelocationAPI.registerTileMover
移动器名 FMP
描述串 Tile mover for Forge Multipart
实现类 mrtjp.relocationfmp.FMPTileHandler(framefmp.scala:187)
强制指定 mod:ForgeMultipart → FMP(proxies.scala:21 registerMandatoryMover)

行为

本 mod 不提供任何方块或结构;它只向 ForgeRelocation 注册一个移动器,让被移动的结构 在搬运含 ForgeMultipart 的格子时不会丢失 FMP 数据。

registerMandatoryMover("mod:ForgeMultipart", "FMP")(proxies.scala:21)表示: 凡是归属 mod:ForgeMultipart 的方块,ForgeRelocation 强制选用 FMP 移动器, 不再走其它移动器分支。

数值/判定

项目 规则 来源
可否移动 仅当该格 TileEntity 是 TileMultipart 时为真,否则 false framefmp.scala:195-199
移动步数 恒为 1 格,沿给定的 side 方向偏移 framefmp.scala:208

搬运流程

move(world, x, y, z, side)(framefmp.scala:201-217):

  1. 记录原方块、metadata、TileEntity。
  2. WorldLib.uncheckedRemoveTileEntity 移除 TE。
  3. WorldLib.uncheckedSetBlock(..., Blocks.air, 0) 把原格清空。
  4. 在 side 偏移后的坐标写回原方块与 metadata。
  5. 手工改写 TE 的 xCoord / yCoord / zCoord,再用 WorldLib.uncheckedSetTileEntity 放回新位置。

postMove(framefmp.scala:219-223)随后对新位置的 TE 调用 onMoved()。

⚠️ 因为 FMP 的一格内容是 TileMultipart 内部的一堆 part(而不是方块本身的 metadata), 搬运只能整格搬运;本 mod 无法把单个 part 单独移出。

相关条目