Matter Manipulator

[!INFO] Git Commit: 28c8473 | Updated: 2026-10-02

Matter Manipulator(mod id matter-manipulator,注意含连字符)是 GregTech 5 的蓝图施工机器模组。 它让玩家把手里的方块按规划成批自动摆放、拆除、复制、移动——本质上是把「手持方块一个一个放」 升级成「选定一个区域,机器替你把整个建筑盖出来」。玩家侧的核心是 4 个等级的操纵器, 高阶版本再配合 9×9×9 的 GregTech 多方块量子上行链路 实现跨维度、无限范围的施工。

⚠️ 分类名 ≠ modid

概念 值
modid matter-manipulator(含连字符,MMMod.java:21)
资源域 matter-manipulator(含连字符,矿典与贴图路径都要带)
本 wiki 分类名 mattermanipulator(无连字符,按 relation.md 的驼峰转小写规则)

gradle.properties 写 modId = matter-manipulator。写配置、crash 报告、/give 时用带连字符的写法。

注册总览(132 个 Java 文件,注册内容只有 8 条)

注册表 条目数 说明
物品 5 itemMatterManipulator0~3 + metaitem
其中实际物品 32 metaitem 一个注册名展开 28 个 meta
方块 0 本 mod 不注册任何方块
TileEntity 0(不注册原版 TE) —
GregTech MTE 2 上行链路 + ME 连接仓鼠(AE2 + GT 双重门控)
实体 1 大型掉落物实体
配置项 29 GlobalMMConfig,用 @Config 声明

本 mod 没有方块:所有东西都是物品 + GregTech 自定义 MTE。 「机器」在 GT 里不是方块,是 IMetaTileEntity。

四级操纵器

型号 范围 每 tick 放置 每块 tick 电压 最大电量 关键解锁
MK0 32 16 20 3 10,000,000 只能放置
MK1 64 32 10 5 100,000,000 拆除、接 AE、换材料、连电缆
MK2 128 64 5 6 1,000,000,000 复制、整体移动
MK3 -1(无限) 配置项 5 7 10,000,000,000 上行链路、智能复制

能力位用位掩码(ALLOW_GEOMETRY / ALLOW_REMOVING / ALLOW_COPYING / ALLOW_MOVING / CONNECTS_TO_UPLINK 等)逐级累加;MK3 的放置速度取自配置项 mk3BlocksPerPlace,不是常量。

依赖范围说明

  • GregTech 5 — 核心框架依赖(MTEExtendedPowerMultiBlockBase、MetaTileEntityIDs),本 wiki 已收录
  • Applied Energistics 2 — AE2 网络与加工方案依赖。不在本 wiki 收录范围 (AE2 本体的收录分类是 applied-energistics-2-unofficial,已登记但尚未成文)
  • IndustrialCraft 2 — 通过 @Interface(modid = Names.INDUSTRIAL_CRAFT2, ...) 软兼容 电量/电网接口。不在本 wiki 收录范围
  • GT++ — 上行链路结构用到 ModBlocks.blockCasingsMisc(Matter Generation Coil 等外壳)。 不在本 wiki 收录范围
  • structurelib(GTNewHorizons)— 多方块结构框架,随 GregTech 引入

⚠️ AE2 + GT 是双重运行期门控:CommonProxy.init() 用 Mods.AppliedEnergistics2.isModLoaded() && Mods.GregTech.isModLoaded() 判断, 缺任一则上行链路与 ME 仓鼠完全不注册(MMItems.registerMultis() 不会执行)。

方块列表

本 mod 不注册任何方块。

物品列表

多方块列表

实体列表

源码缺陷

  1. Structures.java 第 0 层含字符 ~(" AA~AA "),但 MTEMMUplink.compile() 只调用了 addCasing 映射 A/B/C/D/E 五个字符——~ 不对应任何方块, 属于未定义字符。
  2. MMItems.registerItems() 与 registerMultis() 是两个分离的注册入口, 分别在 preInit 和 init 执行;MMItemList 枚举里 UplinkController / UplinkHatch 与 28 个 meta 部件混排,容易误读为同一注册表。
  3. MTEMMUplink 构造器里 structureInstanceInfo = null(第 110 行)只出现在原型构造器中; 实例走 newMetaEntity → 原型构造器(第 119 行)才被赋值,因此不是空指针缺陷, 但两个构造器行为不一致,容易被误报。
  4. EntityItemLarge 的实体注册名是 EntityItemLarge(帕斯卡命名), 与本 mod 其它注册名风格(itemMatterManipulator0、metaitem)完全不统一。
  5. MMMod.missingMapping 里用 5 个 if 逐条忽略旧映射 (gregtech:gt.metaitem.04 与 itemMatterManipulator0~3), 写死为物品类型且不处理方块/机器类型——本 mod 无方块所以暂无影响, 但若将来加机器就会漏。