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 不注册任何方块。
物品列表
- Matter Manipulator MK0 - 范围 32,只能放置
- Matter Manipulator MK1 - 范围 64,解锁拆除
- Matter Manipulator MK2 - 范围 128,解锁复制与移动
- Matter Manipulator MK3 - 范围无限,可连上行链路
- 部件(MetaItem) - 1 个注册名 / 28 个 meta:核心件、下行链路、5 种升级件
多方块列表
- 量子上行链路 - 9×9×9,跨维度无限范围
- 量子上行链路 ME 连接仓鼠 - 把上行链路接入 AE2 网络
实体列表
- 大型掉落物实体 - 零速度,靠载具拖动搬运大批方块
源码缺陷
Structures.java第 0 层含字符~(" AA~AA "),但MTEMMUplink.compile()只调用了addCasing映射A/B/C/D/E五个字符——~不对应任何方块, 属于未定义字符。MMItems.registerItems()与registerMultis()是两个分离的注册入口, 分别在preInit和init执行;MMItemList枚举里UplinkController/UplinkHatch与 28 个 meta 部件混排,容易误读为同一注册表。MTEMMUplink构造器里structureInstanceInfo = null(第 110 行)只出现在原型构造器中; 实例走newMetaEntity→ 原型构造器(第 119 行)才被赋值,因此不是空指针缺陷, 但两个构造器行为不一致,容易被误报。EntityItemLarge的实体注册名是EntityItemLarge(帕斯卡命名), 与本 mod 其它注册名风格(itemMatterManipulator0、metaitem)完全不统一。MMMod.missingMapping里用 5 个if逐条忽略旧映射 (gregtech:gt.metaitem.04与itemMatterManipulator0~3), 写死为物品类型且不处理方块/机器类型——本 mod 无方块所以暂无影响, 但若将来加机器就会漏。