跳到主要内容

基础用法

EMC 配方适配器提供两种调用方式:一行快捷调用链式 Builder 模式

导入

所有脚本开头需要导入:

import mods.emcadapter.RecipeAdapter;

方式一:一行快捷调用

最简单的用法,将某个模组的全部配方导入到指定 MMCE 机器:

// adapter(机器名, 适配器类型)
RecipeAdapter.adapter("my_machine", "mekanism:enrichment");

也可以同时指定 4 个倍率参数:

// adapter(机器名, 适配器类型, 能量倍率, 时间倍率, 物品输入倍率, 物品输出倍率)
RecipeAdapter.adapter("my_machine", "mekanism:enrichment", 1.5, 0.8, 1.0, 2.0);

或者指定全部 6 个倍率参数:

// adapter(机器名, 适配器类型, 能量倍率, 时间倍率, 物品输入倍率, 物品输出倍率, 流体输入倍率, 流体输出倍率)
RecipeAdapter.adapter("my_machine", "thermalexpansion:crucible", 1.0, 1.0, 1.0, 1.0, 2.0, 2.0);

方式二:链式 Builder 模式

需要更精细控制时,使用 create() 创建构建器:

RecipeAdapter.create("my_machine", "enderio:sagmill")
.setEnergyMultiplier(1.5)
.setTimeMultiplier(0.8)
.setItemInputMultiplier(1.0)
.setItemOutputMultiplier(2.0)
.build();

添加额外输入输出

在适配配方的基础上,额外追加输入或输出需求:

RecipeAdapter.create("my_machine", "mekanism:enrichment")
.setEnergyMultiplier(2.0)
.addEnergyPerTickInput(100) // 额外每 tick 消耗 100 RF
.addItemInput(<minecraft:redstone> * 4) // 额外需要 4 个红石
.addFluidInput(<liquid:water> * 1000) // 额外需要 1000mB 水
.build();

添加配方提示

RecipeAdapter.create("my_machine", "thermalexpansion:pulverizer")
.addRecipeTooltip("§e需要高级机器框架")
.addRecipeTooltip("§7能量消耗 ×1.5")
.setEnergyMultiplier(1.5)
.build();

适配器类型格式

适配器类型的格式为 模组ID:机器类型,例如:

  • mekanism:enrichment — Mekanism 富集仓
  • thermalexpansion:pulverizer — Thermal Expansion 磨粉机
  • enderio:sagmill — EnderIO SAG 磨粉机
  • ic2:macerator — IC2 打粉机

完整列表请参阅 适配器列表

多机器导入示例

import mods.emcadapter.RecipeAdapter;

// 为 "universal_processor" 机器导入多个模组的配方
RecipeAdapter.adapter("universal_processor", "mekanism:enrichment");
RecipeAdapter.adapter("universal_processor", "mekanism:crusher");
RecipeAdapter.adapter("universal_processor", "thermalexpansion:pulverizer");
RecipeAdapter.adapter("universal_processor", "enderio:sagmill");

// 为 "alloy_furnace" 机器导入合金配方,能量翻倍
RecipeAdapter.adapter("alloy_furnace", "enderio:alloysmelter", 2.0, 1.0, 1.0, 1.0);
RecipeAdapter.adapter("alloy_furnace", "thermalexpansion:smelter", 2.0, 1.0, 1.0, 1.0);