GT 配方加载器

基本信息

属性 值
包 com.dreammaster.gthandler(根 12 文件)+ com.dreammaster.gthandler.recipes(45 文件)
调度入口 com.dreammaster.gthandler.GT_CustomLoader.run()(GT_CustomLoader.java:141-158)
配方表 全部走 GregTech 5 的 RecipeMaps,不走 GameRegistry.addRecipe
GT 配方文件数 45
GT 配方文件总行数 26924
单文件最大 AssemblerRecipes.java,9835 行
与脚本体系的区别 脚本走 IScriptLoader → GameRegistry.addRecipe;本体系走 GT5 配方表

功能

GT_CustomLoader 是本 mod 面向 GregTech 5 的配方与数据总装载器。它与 配方脚本 是两套并行体系:

体系 入口 登记目标 文件数
脚本体系 ScriptLoader.run() GameRegistry.addRecipe(原版合成) 111
GT 体系 GT_CustomLoader.run() GT5 RecipeMaps.* 45 + 12

run() 的 10 步装载顺序

顺序是有意义的 —— 后面的步骤依赖前面已注册的内容(GT_CustomLoader.java:141-158):

步骤 调用 说明
1 FrankenskullFix.fixEnderIO() 仅 EnderIO 加载时(:142-144)
2 BlockHarvestToolFix.fixBOPHarvestTools() 仅 BiomesOPlenty 加载时(:145-147)
3 MaterialLoader.run() GT_Loader_Materials
4 WireLoader.run() GT_Loader_Wires
5 ItemLoader.run() GT_Loader_Items
6 MachineLoader.run() GT_Loader_Machines(2946 行,本包最大)
7 Remover.run() GT_Recipe_Remover,先删后加
8 OreDictionary.run() GT_Loader_OreDictionary
9 MachineRecipeLoader.run() GT_MachineRecipeLoader
10 CraftingRecipeLoader.run() GT_CraftingRecipeLoader(2468 行)
11 MoldLoader.run() GT_Loader_Molds
12 MechanicalArmorRecipes.run() MechanicalArmorRecipes(462 行)

上表 12 行对应 run() 内的 12 次调用(GT_CustomLoader.java:142-157)。

第 7 步是关键:先删后加

Remover.run() 排在所有加载器之前(:152)。GT_Recipe_Remover implements Runnable(GT_Recipe_Remover.java:27),450 行,负责从 GT5 配方表中移除整合包不想要的配方,让后续步骤可以干净地重定义它们。若顺序颠倒,删除会连带抹掉刚注册的配方。

根级加载器(12 个文件)

类 行数 职责
GT_CustomLoader 159 调度器,串起全部 12 步
GT_Loader_Machines 2946 机器注册,本包最大
GT_CraftingRecipeLoader 2468 合成配方登记
GT_Loader_Items — 物品
GT_Loader_Materials — 材料
GT_Loader_OreDictionary 281 矿物词典
GT_Loader_Wires 224 线缆
GT_Loader_Molds — 模具
GT_Recipe_Remover 450 配方删除
GT_MachineRecipeLoader — 机器配方
MechanicalArmorRecipes 462 动力装甲配方
DTPFCalculator 288 DTPF 计算

recipes 子包(45 个文件)

每个文件对应 一台 GregTech 机器的配方表,文件名即机器名;RecipeRemoval 是例外,专门做配方移除。

文件 文件 文件
AlloySmelterRecipes ArcFurnaceRecipes AssemblerRecipes
AssemblingLineRecipes AutoclaveRecipes BECRecipes
BeamcraftingRecipes BendingMachineRecipes BlastFurnaceRecipes
BrewingMachineRecipes CannerRecipes CentrifugeRecipes
ChemicalBathRecipes ChemicalReactorRecipes CircuitAssemblerRecipes
CircuitAssemblyLineRecipes CompressorRecipes CrackingRecipes
CuttingMachineRecipes DTPFRecipes DistillationRecipes
ElectrolyzerRecipes ExtractorRecipes ExtruderRecipes
FermenterRecipes FluidExtractorRecipes FluidHeaterRecipes
FluidSolidifierRecipes ForgeHammerRecipes FormingPressRecipes
ImplosionCompressorRecipes LaserEngraverRecipes LatheRecipes
MaceratorRecipes MixerRecipes NeutroniumCompressorRecipes
PolarizerRecipes PreciseAssemblerRecipes RecipeRemoval
SifterRecipes SolarFactoryRecipes SpaceAssemblerRecipes
VacuumFreezerRecipes VacuumFurnaceRecipes WiremillRecipes

完整清单由 ls src/main/java/com/dreammaster/gthandler/recipes 逐项核对,共 45 项,表中无遗漏。

数值

数值名 值
GT 配方文件数 45
GT 配方文件总行数 26924
根级加载器数 12
run() 装载步骤 12
最大单文件 AssemblerRecipes.java 9835 行
删除步骤位置 第 7 步,先于所有加载器

交互

特性 说明
玩家可见性 全部是配方数据,无方块/物品/GUI/指令
模组依赖 整体系硬依赖 GregTech 5(dependencies = "required-before:gregtech",MainRegistry.java:111)
条件执行 步骤 1、2 带 isModLoaded 守卫;其余 10 步无条件执行

相关条目