格雷科技社区版 所有的合成表都保存在 RecipeMap 里。 为了得到它们,你需要向你的代码import mods.gregtech.recipe.RecipeMap

合成表被分类在对应的机器里,调用 RecipeMap.getByName(机器名称) 来获取特定的合成表和构建器。

可用机器列表

Link to 可用机器列表

  • 压缩机: compressor
  • 提取机: extractor
  • 打粉机: macerator
  • 洗矿厂: orewasher
  • 热力离心机: thermal_centrifuge
  • 电炉: furnace
  • 微波炉: microwave
  • 组装机: assembler
  • 冲压机床: forming_press
  • 流体装罐机: fluid_canner
  • 等离子电弧炉: plasma_arc_furnace
  • 电弧炉: arc_furnace
  • 筛选机: sifter
  • 精密激光蚀刻机: laser_engraver
  • 搅拌机: mixer
  • 高压釜: autoclave
  • 电磁离析机: electromagnetic_separator
  • 两极磁化机: polarizer
  • 化学浸洗器: chemical_bath
  • 酿造器: brewer
  • 流体加热器: fluid_heater
  • 蒸馏室: distillery
  • 发酵槽: fermenter
  • 流体固化器: fluid_solidifier
  • 流体加热器: fluid_extractor
  • 离心机: centrifuge
  • 电解槽: electrolyzer
  • 高炉: blast_furnace
  • 聚爆压缩机: implosion_compressor
  • 真空冷冻机: vacuum_freezer
  • 化学反应釜:chemical_reactor
  • 蒸馏塔: distillation tower
  • 石油裂化机: cracker
  • 热解炉: pyro
  • 线材轧机: wiremill
  • 卷板机: metal_bender
  • 合金炉: alloy_smelter
  • 装罐机: canner
  • 车床: lathe
  • 板材切割机: cutting_saw
  • 压模器: extruder
  • 锻造锤: forge_hammer
  • 打包机: packer
  • 解包机: unpacker
  • 柴油发电机: diesel_generator
  • 燃气轮机: gas_turbine
  • 蒸汽轮机: steam_turbine
  • 等离子发电机: plasma_generator

尚未实现:

  • UU物质生成机: uuamplifier
  • 热力发电机: thermal_generator
  • 半流质发电机: semi_fluid_generator
  • 聚变反应堆: fusion_reactor

Primitive Blast Furnace uses different syntax from normal recipes. For example:

ZenScript
Copy
import mods.gregtech.recipe.PBFRecipeBuilder;

//Primitive Blast Furnace 防火砖高炉
PBFRecipeBuilder.start()
    .input(<ore:ingotCompressedWroughtIron> * 1)
    .output(<ore:ingotSteel>.firstItem * 1)
    .duration(250)
    .fuelAmount(2)
    .buildAndRegister();

//Remove recipes from PBF 从防火砖高炉移除合成表
import mods.gregtech.recipe.RecipeMaps;

for recipe in RecipeMaps.getPrimitiveBlastFurnaceRecipes() {
    recipe.remove();

在获得 RecipeMap 的一个实例后,你可以使用它的构建器定义合成表

调用构建器方法:

ZenScript
Copy
recipeMap.recipeBuilder()

这有点像 Java 的 Stream<T> ,有齐全的功能来控制你的合成表的行为。

用电力高炉举例:

ZenScript
Copy
//电力高炉
val blast_furnace = mods.gregtech.recipe.RecipeMap.getByName("blast_furnace");
blast_furnace.recipeBuilder()
    .inputs(<ore:ingotCompressedWroughtIron> * 1)
    .fluidInputs([<liquid:oxygen> * 500])
    .outputs(<ore:ingotSteel>.firstItem * 1)
    .property("temperature", 1000) //this is a minimal temperature at which the item will be smelted
    .duration(40)
    .EUt(120)
    .buildAndRegister();

一些参数可以用 .property() 语法来指定:

名称描述
名称
explosives
描述
聚爆压缩机,炸药的数量
名称
circuit
描述
可配置集成电路的机器。 集成电路的配置
名称
temperature
描述
高炉。 最低需要的温度。

These ones are NOT IMPLEMENTED YET:

名称描述
名称
amplifier
描述
UU物质增殖液生产机。 输出UU物质增殖液的数量。
名称
eu_to_start
描述
聚变反应堆,开始聚变的 EU 数量

你可以像使用 “temperature” 一样使用它们

ZenScript
Copy
.property("circuit", X)//,X 是集成电路的配置
.property("explosives", Y)//,Y 是使合成表工作的炸药数量

更多有用的语法:

ZenScript
Copy
.inputs()
.fluidInputs()
.outputs()
.fluidOutputs()
.chancedOutput(<itemstack>, 0-10000, 0-10000) (10000 is 100%) // (itemstack, intitial output chance, tier output chance boost
.duration() // in ticks
.notConsumable(X) // where X is a CT id. Works as .inputs, but the item doesn't get consumed
.hidden() // if the recipe is hidden from the JEI
.chancedOutput(<itemstack>, 0-10000, 0-10000) (10000 is 100%) // not valid for every machine. 只有部分机器会使用这个语句。 最不可用的一类是打粉机
.EUt() // 每tick的EU消耗

移除一个合成表是由这个合成表的实例自身完成的,所以你需要先找到这个合成表。

示例:

ZenScript
Copy
val compressor as RecipeMap = RecipeMap.getByName("compressor");

// 找到合成表(电压, 指定的输入物品, 指定的<FluidStack>输入)
compressor.findRecipe(2, [<minecraft:redstone>], null).remove();<