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):
- 记录原方块、metadata、TileEntity。
WorldLib.uncheckedRemoveTileEntity移除 TE。WorldLib.uncheckedSetBlock(..., Blocks.air, 0)把原格清空。- 在
side偏移后的坐标写回原方块与 metadata。 - 手工改写 TE 的
xCoord/yCoord/zCoord,再用WorldLib.uncheckedSetTileEntity放回新位置。
postMove(framefmp.scala:219-223)随后对新位置的 TE 调用 onMoved()。
⚠️ 因为 FMP 的一格内容是
TileMultipart内部的一堆 part(而不是方块本身的 metadata), 搬运只能整格搬运;本 mod 无法把单个 part 单独移出。
相关条目
- rfmp_frame(FMP 框架部件) — 被本移动器搬运的 FMP 内容之一