Minetweaker Gregtech 5 Addon

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

Minetweaker Gregtech 5 Addon(简称 GTTweaker)是 GTNH 1.7.10 的 CraftTweaker/MineTweaker 脚本 API 附属模组。它不添加任何方块、物品、GUI 或多方块,自身也没有任何游戏内功能:全部 67 个 Java 文件的作用是把 GregTech 5 的 55 台机器 + 燃料系统 + 配方删除器注册成 ZenScript 可调用的类,让脚本作者能写 mods.gregtech.AlloySmelter.addRecipe(...)。

源码根:/Users/evlos/a/mirror/Minetweaker-Gregtech-5-Addon/;包名:gttweaker;模组名 GTTweaker。

维度 内容
模组 ID GTTweaker(混合大小写,实测自 @Mod(modid = "GTTweaker", useMetadata = true))
名称 GTTweaker / Minetweaker Addon for GregTech 5.
Minecraft 1.7.10
Forge 10.13.4.1614
编译期依赖 GT5-Unofficial:5.09.54.35(api)、CraftTweaker:3.4.7(api)
运行时门控 @ModOnly("gregtech") 54 类 / @ModOnly("miscutils") 6 类
作者 DreamMasterXXL、Techlone;致谢 Stan Hebben、Blood Asp、bculkin2442
方块 / 物品 / GUI / 多方块 0 / 0 / 0 / 0
注册的 ZenClass 58(GT 5 机器 49 + GT++ 机器 6 + Fuels 1 + RA2 1 + RecipeRemover 1)
ZenMethod 总数 104
提供的 ZenExpansion 1(minetweaker.oredict.IOreDictEntry,含 1 个 @ZenGetter)
网络包 / 配置 / 命令 0 / 0 / 0
条目数 13(6 API / 5 机器 / 2 机制)

API 层(api/)

  • RA2 Builder - mods.gregtech.RA2,15 个 ZenMethod,通用的链式配方构造器(GT5 RA2 移植)
  • AddMultipleRecipeAction - 全部 55 台机器的共同基类,把 IIngredient 笛卡尔积展开成多条配方
  • Recipe Remover - mods.gregtech.RecipeRemover.remove(map, inputs, fluidInputs),唯一可撤销的删除操作
  • Fuels - mods.gregtech.Fuels,6 种发电机的燃料注册
  • Recipe Map 查找 - GTRecipeMap.getRecipeMap(String),按 unlocalized 名反查 RecipeMap 并缓存
  • OreDict greggedItem - 唯一的 ZenExpansion,为矿辞典条目补 greggedItem getter

机器层(machine/)

  • 冶炼类机器 - 7 个 ZenClass(AlloySmelter / ArcFurnace / BlastFurnace / PrimitiveBlastFurnace / PlasmaArcFurnace / PyrolyseOven / OilCracker)
  • 化学类机器 - 12 个 ZenClass(ChemicalReactor / ChemicalBath / Distillery / DistillationTower / Electrolyzer / Centrifuge / ThermalCentrifuge / Fermenter / Brewery / FluidExtractor / Autoclave / FusionReactor(必抛 CCE))
  • 金属与成型类机器 - 11 个 ZenClass(Wiremill / Lathe / PlateBender / Polarizer / CuttingSaw / Slicer / ForgeHammer / VacuumFreezer / ImplosionCompressor / FormingPress / Extruder)
  • 装配与流体类机器 - 19 个 ZenClass(Assembler / CircuitAssembler / AssemblyLine / Amplifabricator / Packer / Unpacker / Printer / Separator / Sifter / Pulverizer / OreWasher / Extractor / Compressor / PrecisionLaser / FluidHeater / FluidSolidifier / FluidCanner / Canner / Mixer)
  • GT++ 机器 - 6 个 ZenClass(@ModOnly("miscutils")),仅在 GTPlusPlus.isModLoaded() 时注册

机制与设置

  • 原料转换 - IIngredient → ItemStack / FluidStack 的两条转换路径及其失败模式
  • 注册时序 - init / postInit 的两阶段注册与 @ModOnly 门控

跨条目交叉引用

  • 一个 ZenClass ↔ 一个 Java 类 ↔ 一个 GregTech 机器。49 个 GT 机器类中有 6 个不新增 ZenClass 能力而是复用别处的 map:DistillationTower 独占 distillationTowerRecipes,FluidCanner 与 Canner 共用 cannerRecipes,Slicer 与 CuttingSaw 共用 cutterRecipes,PlasmaArcFurnace 与 ArcFurnace 共用 arcFurnaceRecipes。
  • mods.gregtech.RA2 是唯一支持 IUndoableAction 的「添加」路径;55 个机器类走 AddMultipleRecipeAction extends OneWayAction,不可撤销。
  • 配方的最终落点由 .addTo(<RecipeMap>) 决定。Extruder 唯独漏调 addTo,因此是静默空操作(见 金属与成型类机器)。
  • 一处调用可产出多条配方:DistillationTower.addUniversalRecipe 单次调用写 2 个 map(最多 1 + 11 = 12 条 GTRecipe),VacuumFreezer.addRecipe 视输入/输出是否为容器额外写 1 条流体配方。
  • 模组自身零游戏内容:find src/main/resources 只有 1 个文件 mcmod.info,无 lang、无贴图、无模型、无 gradleToken 生成的 Tags 类。

第三方模组集成

  • CraftTweaker 3.4.7(api 编译依赖 + 运行时硬依赖)—— 本模组的宿主框架
    • minetweaker.MineTweakerAPI.registerClass(Class) / registerClassRegistry(Class):注册 ZenClass
    • minetweaker.OneWayAction / IUndoableAction:动作基类,决定可撤销性
    • minetweaker.annotations.ModOnly / ZenClass / ZenMethod / ZenExpansion / ZenGetter(stanhebben.zenscript.annotations.*)
    • minetweaker.api.item.IIngredient / IItemStack、api.liquid.ILiquidStack、api.oredict.IOreDictEntry
    • CraftTweaker 未收录于本 wiki,仅作依赖说明
  • GregTech 5 (GT5-Unofficial) 5.09.54.35(api 编译依赖 + 运行时硬依赖,@ModOnly("gregtech"))
    • GTValues.RA.stdBuilder():全部 55 台机器的配方构造器
    • RecipeMaps.*(约 40 个 map)、GTRecipeConstants.*(FUEL_VALUE / FUEL_TYPE / RESEARCH_ITEM / SCANNING / ADDITIVE_AMOUNT)
    • GTRecipe / GTRecipeBuilder / RecipeMap.findRecipeQuery() / TierEU / Scanning / GTUtility / GTRecipeConstants.Fuel
    • GregTech 5 本身未收录于本 wiki
  • GregTech++ / MiscUtils(运行时可选,@ModOnly("miscutils") + GTPlusPlus.isModLoaded() 双重门控)
    • 门控 modid 是 miscutils(GT++ 的真实 modid),不是 GTPlusPlus
    • GregTech++ 未收录于本 wiki