Tinkers Mechworks

[!INFO] Git Commit: 6274195 | Updated: 2026-10-01

Tinkers Mechworks 是 GTNH 1.7.10 的 红石自动化 / 方块搬运模组(MODID = TMechworks)。它不是 Tinkers’ Construct 的工具或材料附属:全模组 5 个方块 + 2 个物品,核心是 4 种用红石触发的「红石机器」(Drawbridge 伸缩桥 4 个变体 + Igniter 点火器),以及一套跨区块、跨维度的 Signal Bus 信号总线网络(总线 + 终端 + 线轴)。它从 Tinkers’ Construct 借的只有材料锭与工具部件作为配方原料,以及 TCon 手册页面。

源码根:/Users/evlos/a/mirror/TinkersMechworks/;包名:tmechworks;资源域 tmechworks。

维度 内容
模组 ID TMechworks(混合大小写,实测自 Repo.modId)
名称 Tinkers Mechworks
Minecraft 1.7.10
Forge 10.13.4.1614(required-after:Forge@[10.13.0.1208,])
TinkersConstruct 依赖 1.14.58-GTNH(compile)
Mantle 依赖 0.5.1(compile,TCon 的底层库)
硬依赖声明 required-after:TConstruct + required-after:Mantle
方块 / 物品 5 / 2(方块含 4 个 RedstoneMachine meta)
GUI 2(drawbridgeID = 0、advDrawbridgeID = 1)
网络包 1(PacketDrawbridge,discriminator 0)
命令 1(/tmech_blockInfo,OP 级 2)
配方 11
配置项 1(drawbridge.blacklist 字符串列表)
条目数 20(8 方块 / 2 物品 / 1 多方块 / 9 机制)

方块列表

  • Drawbridge - redstoneMachine meta 0;每 5 tick 伸/缩 1 格,最大 15 格,用 FakePlayerLogic 放置方块
  • Igniter - redstoneMachine meta 1;红石点燃/熄灭正前方 1 格的火
  • Advanced Drawbridge - redstoneMachine meta 2;16 槽 + 伪装(camo)槽,GUI ID 1
  • Long Drawbridge - redstoneMachine meta 3;同 Drawbridge 但 maxExtension = 64
  • Signal Bus - 信号总线方块,是本 mod 唯一的多方块成员,可任意方向拼接
  • Signal Terminal - 信号终端,6 面独立通道,接收总线信号并按面输出红石
  • Mesh Filter - 薄板过滤方块,8 个 subFilter 槽,本模组实际启用 5 种
  • Dynamo - 空实现:只有发光(lightLevel 1.0)与外观,DynamoLogic 是空类

物品列表

  • Length Wire - 8 个一组的线材,Signal Bus / Spool 的配方原料
  • Spool of Wire - 耐久 256 的「无线」工具:右键终端设目标、右键总线消耗曼哈顿距离

多方块结构

  • Signal Bus 网络 - 本 mod 唯一的多方块:无固定尺寸、无控制器,由 MultiblockBaseLogic 按 placedSides 邻接图自动聚合

机制与设置

  • 过滤网类型 - 5 种 subFilter 的通过规则(empty / wide / slat / mesh / fine)
  • Drawbridge 放置规则 - 137 条 PlacementType 白名单,但运行时完全未被读取
  • Drawbridge GUI - GUI ID 0/1、容器槽位、5 个方向按钮(缺东)与「伸出时禁装填」
  • 方块物品形态 - 4 个 ItemBlock、subtype 命名与 tooltip(方向字符串与逻辑错位)
  • 信号系统接口 - ISignalBusConnectable / ISignalTransceiver + 手持 Spool 时的 tether 覆盖渲染
  • Fake Player - Drawbridge 放置方块时使用的 FakePlayerLogic(UUID 为 null)
  • 网络管线 - PacketPipeline + 唯一的 PacketDrawbridge(13 字节,C2S 单向)
  • 配置文件 - 唯一的 drawbridge.blacklist + 3 项不可关闭的硬编码黑名单
  • 命令行 - /tmech_blockInfo 调试方块(Z 坐标打印错成 posX)

跨条目交叉引用

  • 渲染注册(client/ClientProxy.registerRenderer()):4 个 ISimpleBlockRenderingHandler(MachineRender / SignalBusRender / SignalTerminalRender / FilterRender)+ 1 个 TESR(DynamoLogic → DynamoSpecialRender)+ 1 个物品渲染器(Dynamo → DynamoItemRender)。5 个方块全部走自定义渲染,无一个是普通方块模型。
  • 创意标签页:TabTools(lib/util/TabTools.java)继承 CreativeTabs,图标为 Signal Terminal。getTabIconItem() 返回 null 并带 // TODO TAKE CARE OF THIS,实际靠覆写 Forge 的 getIconItemStack() 生效。
  • RedstoneMachine 的 4 个 meta 共享同一个方块 ID:TMechworks:redstoneMachine meta 0/1/2/3 分别对应 4 个不同 TE 与 4 组不同贴图与 2 个 GUI。见 Drawbridge。
  • Signal Bus 三件套:Signal Bus(总线)→ Signal Terminal(终端)→ Spool of Wire(跨维度连接工具)。终端必须先归属到某个总线才能工作。
  • Drawbridge 的方块支持面由 Drawbridge 放置规则 的 110 项白名单决定,不在白名单的方块会被烧掉(GTFO)。
  • Mesh Filter 的 8 个槽只用了 5 个,subFilter 索引 0-4 由 过滤网类型 定义,索引 5-7 永远为 null。
  • 配方全部集中在 MechRecipes.registerAllTheThings(),其中 // Dynamo Recipes 是空注释 —— Dynamo 与 Mesh Filter 都没有配方。

第三方模组集成

  • Tinkers’ Construct 1.14.58-GTNH(compile,硬依赖)—— 仅作原料与 API 宿主,不新增任何工具/材料/部件
    • TConstructRegistry.getItemStack 取 6 种材料锭作 subFilter 图标与配方料:ingotAluminumBrass / ingotBronze / ingotCopper / ingotAluminum / ingotAlumite / ingotCobalt / ingotArdite
    • TConstructRegistry.getItem 取 blankPattern(空 pattern)与 heavyPlate(大板)作配方料
    • TinkerWorld.slimePad / TinkerWorld.bloodChannel 是唯二进入 Drawbridge 放置白名单的 TCon 方块(且该白名单当前未生效,见 Drawbridge 放置规则)
    • ToolCore / ToolPart 被 mesh 过滤网用作「过滤掉 TCon 工具部件」的判据
    • TinkerSmeltery.lavaTank / lavaTankNether 被硬编码进黑名单(不可配置,见 配置文件)
    • tinker:compressed_alubrass 贴图被 Dynamo 借用
    • TCon 物品本体说明见 tinkersconstruct,本条目不复述
  • Mantle 0.5.1(compile,硬依赖)—— 本 mod 的结构性基座
    • mantle.blocks.abstracts.InventoryBlock / InventoryLogic:RedstoneMachine、DrawbridgeLogic、AdvancedDrawbridgeLogic 的父类;getGuiContainer 由本 mod 覆写
    • mantle.blocks.iface.IActiveLogic / IFacingLogic:红石激活与朝向契约
    • mantle.common.network.AbstractPacket + PacketPipeline 的 codec 基类
    • MantleClientRegistry.registerManualLargeRecipe:2 条 TCon 手册配方(drawbridge / igniter)
    • mantle.world.CoordTuple / CoordTuplePair / WorldHelper / BlockUtils / ComparisonHelper / ClientRegistry / FakePlayer
    • Mantle 未收录于本 wiki,仅作依赖说明

与同族 5 个仓的区别(重点)

/Users/evlos/a/mirror/ 下有 5 个 Tinker 相关仓,本条目只覆盖 TinkersMechworks,其余均已在或不在本 wiki 收录范围:

仓 modid 定位 是否收录
TinkersMechworks TMechworks 红石自动化 / 方块搬运(本条目) ✅ 本分类
TinkersConstruct TConstruct 本体:工具、材料、熔炉、史莱姆岛 ✅ tinkersconstruct
Tinkers-Defense tconstructdefense 防御扩展:GTNH 专属金属 ✅ tinkers-defense
TinkersGregworks tconstructgregtech TCon × GregTech 5 纯兼容层 ✅ tinkersgregworks
ThaumicTinkerer ThaumicTinkerer Thaumcraft × TCon 附魔 ❌ 未收录于本 wiki(brief 误称已建 thaumictinkerer)

判定「是不是同一个 mod」的三条硬证据:

  1. modid 不同:本 mod 是 TMechworks(lib/Repo.java:5 实读),与 TConstruct / tconstructdefense / tconstructgregtech / ThaumicTinkerer 全部不同。
  2. 源码树无 TCon 工具代码:本仓 66 个 Java 文件中没有 ToolMaterial / ToolPart / IToolStats / MeltingRecipe 等 TCon 工具体系类;TCon 全部以只读引用形式出现(TConstructRegistry.getItem、TinkerWorld.slimePad、ToolCore instanceof 等)。
  3. 依赖方向相反:本 mod compile TCon(dependencies.gradle),但 TCon 不依赖本 mod;本 mod 不新增任何工具、材料、矿物或合金。

与 Tinkers’ Construct 本体的实际耦合面(很窄,全部是只读):

  • 6 个材料锭 + blankPattern + heavyPlate 作为配方原料(MechRecipes 11 条配方全部依赖)
  • 2 个方块进放置白名单(slimePad / bloodChannel,但白名单当前未生效)
  • 2 个类名进过滤网 instanceof 链(ToolCore / ToolPart)
  • 2 个熔岩罐进硬编码黑名单
  • 1 张贴图被借用(tinker:compressed_alubrass)
  • 2 条 TCon 手册配方(registerManualLargeRecipe)

因此:本 mod 与 TCon 本体的关系 ≈ 「一个用 TCon 铝黄铜造零件的独立自动化 mod」,而不是 TCon 的功能扩展。理解这一点可避免把它归入 TCon 工具体系。