基础用法
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);