跳到正文
烈焰甘蔗Wiki

材料系统

概述

材料系统是 GT5-Unofficial 的数据底座,全仓共 930 个材料(Materials.java 静态字段),配套 16818 行的材料注册代码(MaterialsInit.java)。每一种材料都是一个 Materials 静态实例,通过 MaterialBuilder 链式构建。

它不只是「一个配方输入」——材料的物理属性(密度、熔点、放射性)会门控机器能力,这在 GT5 里是最容易踩坑的机制之一。

代码基线:GT5U 5.09.54.183(Minecraft 1.7.10)。

材料是怎么定义的

以铁为例(MaterialsInit.java:865):

private static Materials loadIron() {
    return new MaterialBuilder().setName("Iron")
        .setDefaultLocalName("Iron")
        .setElement(Element.Fe)                      // 元素绑定
        .setColor(Dyes.dyeLightGray).setARGB(0x00c8c8c8)
        .setTool(256, 2, 6.0f)                       // 工具属性:耐久/等级/速度
        .addDustItems().addMetalItems()              // 前缀→物品的批量注册
        .addOreItems().addPlasma().addToolHeadItems().addGearItems()
        .setMeltingPoint(1_811)                      // 熔点 K
        .addAspect(TCAspects.METALLUM, 3)            // 神秘时代四灵绑定
        .addOreByproduct(() -> Materials.Nickel)     // 伴生矿
        .addOreByproduct(() -> Materials.Tin)
        .addSubTag(SubTag.BLASTFURNACE_CALCITE_TRIPLE)
        .addSubTag(SubTag.METAL)
        .addSubTag(SubTag.MORTAR_GRINDABLE)
        .addSubTag(SubTag.MULTI_PLATE)
        .addOrePrefix(OrePrefixes.nanite)
        .removeOrePrefix(OrePrefixes.block)           // 让位给 minecraft:iron_block
        .removeOrePrefix(OrePrefixes.ingot)           // 让位给 minecraft:iron_ingot
        .constructMaterial();
}

关键点:

  • addXxxItems() 是批量注册——一行声明某材料拥有某前缀下的所有形态
  • removeOrePrefix 让 GT 材料让位给原版铁块/铁锭,避免两种物品并存
  • addOreByproduct 直接决定离心机的伴生产出

46 个材料分组

MaterialsInit.load() 调用 46 个分组方法,分批定义材料。分组大致是:

分组 内容
loadElements 基础元素金属与非金属
loadIsotopes 同位素材料(放射性/粒子源)
loadSuperconductorBases / loadSuperconductors 超导基材与各电压等级超导体
loadOverpoweredMaterials 超力场材料(GTNH 特色)
loadUEVPlusMaterials UEV 及以上电压材料
loadGTNHMaterials GTNH 整合包专属材料
loadLabGrownGems / loadChimeraGems 实验室培育宝石、嵌合体宝石
loadAcidRecipes / loadWaterLineChemicals 化学线材料
loadSiliconLine 硅材料线(半导体/芯片)
loadUnclassified01–07 未分类杂项
loadGalaxySpace / loadNetheriteLine / loadRadoxLine 外星/下界合金/Radox 线
loadBotaniaMaterials / loadMagicMaterials 魔法侧材料
loadKevlarLine / loadPolybenzimidazoleLine 高分子纤维线

超导体的设计:每个电压等级一个(SuperconductorMV / HV / EV …),用于低温超导线圈配方。

影响矿物加工的属性字段

字段 默认值 作用
mOreMultiplier 1 矿石产量倍率,决定粉碎/锤击产出多少粉碎矿
mByProductMultiplier 1 伴生粉概率倍率,放大离心机伴生概率
mSmeltingMultiplier 1 熔炉/高炉锭产出倍率
mMacerateInto this 粉碎/离心后变成哪种材料的粉
mOreReplacement this 矿物替代(某些材料用替代品)
mDirectSmelting this 直接熔炼的目标材料
mOreByProducts 空列表 伴生材料列表,离心分离的目标

mMacerateInto 是最容易被误解的:它允许「A 矿粉碎后得到 B 的粉」。mOreByProducts 则是离心机的可分离列表——ProcessingOre.java:129 遍历它生成伴生概率。

实际影响

  • 铁有 mOreMultiplier=1,而富矿是 ×2(aMultiplier=2)→ 富铁矿出 2 倍粉碎矿
  • 铱、钍等稀有金属通过 mOreByProducts 让铱/钍粉从别的矿的离心中产出

门控机器的属性字段

字段 类型 作用
mMeltingPoint int (K) 熔点,决定需要的机器等级
mDensity long 密度,决定需要的机器等级/结构强度
mBlastFurnaceRequired boolean 强制走高炉,GT 会移除原版熔炉配方
mAutoGenerateBlastFurnaceRecipes boolean 是否自动生成高炉配方
mDurability int 工具耐久
mToolSpeed float 工具速度
mHeatDamage float 热伤害
mFuelPower / mFuelType int 燃料发热值与类型
mSteamMultiplier / mGasMultiplier / mPlasmaMultiplier float 锅炉/发电机产能倍率

mBlastFurnaceRequired 是最容易踩坑的开关——设为 true 后 ProcessingOre.java:148 会调用 removeFurnaceSmelting 删掉原版熔炉配方,玩家会发现「原版炉子烧不动这块矿」。

[!NOTE] 放射性不在 Materials 字段里。GT5U 的核燃料走 IC2 反应堆组件(ItemRadioactiveCell / ItemRadioactiveCellIC),由 bartworks 的 Element / 同位素系统提供数据。

SubTag:57 个行为开关

SubTag 不是枚举,而是可动态注册的类(getNewSubTag("NAME"))。共 57 个,是玩家可见的行为开关。

矿物加工相关

SubTag 效果
NO_ORE_PROCESSING 完全跳过所有矿物加工配方
SMELTING_TO_GEM 熔炼产物从锭改为宝石
SMELTING_TO_FLUID 熔炼产物为流体
BLASTFURNACE_CALCITE_DOUBLE 高炉 + 方解石/生石灰 → 锭 ×2
BLASTFURNACE_CALCITE_TRIPLE 同上 → 锭 ×3
DONT_ADD_DEFAULT_BBF_RECIPE 不生成砖砌/青铜高炉默认配方
WASHING_MERCURY 可用汞洗矿(金 Gold、锇 Osmium、铂 Platinum、银 Silver、Cooperite、AstralSilver、秘银 Mithril)
WASHING_MERCURY_99_PERCENT 汞洗矿 99% 产出(仅银 Silver)
WASHING_SODIUMPERSULFATE 可用过硫酸钠洗矿(钴 Cobalt、铜 Copper、镍 Nickel、锌 Zinc、钴砷矿 Cobaltite、硫砷铜矿 Tetrahedrite)
ELECTROMAGNETIC_SEPERATION_GOLD 可用电磁分离器提纯金 — 磁铁矿、花岗岩矿砂、钒磁铁矿、玄武岩矿砂
ELECTROMAGNETIC_SEPERATION_IRON 可提纯铁 — 锑、铬、锰、镍、锡、条带状铁矿、褐褐铁矿、铬铁矿、钛铁矿、黄铁矿、黄褐铁矿、黄榴石、海绿石、海绿石砂、镍黄铁矿、蛭石(共 16 种)
ELECTROMAGNETIC_SEPERATION_NEODYMIUM 可提纯钕 — Forcicium、Forcillium、氟碳铈矿、独居石
PULVERIZING_CINNABAR 粉碎辰砂改走水晶形态
ICE_ORE 冰矿特殊处理
MORTAR_GRINDABLE 可用研钵研磨
NO_SMELTING 无熔炼配方
NO_RECIPES 无配方
NO_RECYCLING / NO_RECYCLING_RECIPES 无回收配方
NO_WORKING 无法加工
NO_SMASHING 无法破碎

物理属性相关

METAL、STONE、WOOD、PAPER、CRYSTAL、QUARTZ、SOFT、EXPLOSIVE、FLAMMABLE、BURNING、UNBURNABLE、INVISIBLE、TRANSPARENT、HAS_COLOR、FOOD、PEARL、MAGICAL、STRETCHY、BOUNCY、ICE_ORE。

能量类型相关

ENERGY_ELECTRICITY、ENERGY_STEAM、ENERGY_HEAT、ENERGY_AIR、ENERGY_REDSTONE_FLUX、ENERGY_ROTATIONAL —— 标记材料由哪种能量转化而来。

焊料等级

SOLDERING_MATERIAL_BAD(锡/铅)、SOLDERING_MATERIAL(普通)、SOLDERING_MATERIAL_GOOD(金/银焊料)—— 决定 EFR 覆盖板焊接的焊料等级要求。

前缀(OrePrefixes)

OrePrefixes 定义了材料的所有形态。它是「材料 × 形态」的组合器:

  • 矿物类:ore、oreSmall、orePoor、oreNormal、oreRich、oreDense、oreNether、oreNetherrack、oreEnd、oreEndstone、oreDeepslate、oreGravel、oreSand(+ 各种 Stone 基底)
  • 加工中间体:clump、shard、crushed、crushedPurified、crushedCentrifuged、dirtyGravel
  • 粉:4 档 —— dustImpure(不纯)、dust、dustSmall、dustTiny
  • 宝石:5 档品质 —— gemExquisite、gemFlawless、gem、gemFlawed、gemChipped
  • 零件:ingot、nugget、plate、stick、stickLong、bolt、screw、gear、ring、rod、wire、cable、fineWire、foil、plateDouble、plateTriple、gearSmall、circuit、dust(电学)等

4 档粉的设计意义:dustTiny 用于低倍率矿石,dust 用于正常矿石,dustSmall/dustImpure 用于分离产物。数量递减匹配不同产量。

5 档宝石见 矿物加工 — 筛分机按概率产出不同品质。

玩家如何规划

  • 看到矿石不能加工 → 查该材料是否带 NO_ORE_PROCESSING,只能走熔炼/合成。
  • 原版炉子烧不动 → 该材料 mBlastFurnaceRequired=true,必须用 GT 电弧高炉。
  • 想提高某个矿的收益 → 优先挖富矿/致密矿(×2),而不是找 mOreMultiplier 更大的材料。
  • 分离稀有金属 → 看 mOreByProducts,某些稀有粉是从大宗矿的离心中出来的。
  • 焊板/电路焊接失败 → 检查焊料等级 SubTag,需要更高等级的焊锡/银焊料。
  • 材料值不值得做 → 看 mMeltingPoint 和 mDensity:两者高意味着需要更高级的机器/结构,投入产出比要算清楚。

相关条目

  • 矿物加工 — 材料的 mOreMultiplier / mOreByProducts 如何驱动加工链
  • 配方系统 — 材料的 mMeltingPoint / mDensity 如何门控配方与机器等级
  • 电压等级 — 超导材料与电压等级的对应关系
  • 超频 — 提升机器等级以处理高熔点/高密度材料
浏览全部模组