催化剂系统
EMC 配方适配器支持为导入的配方添加 催化剂(Catalyst)。催化剂是一种不消耗的物品需求,放入后可以对配方产生修饰效果。
添加催化剂
使用 addCatalyst() 方法添加催化剂物品:
import mods.emcadapter.RecipeAdapter;
RecipeAdapter.create("my_machine", "mekanism:enrichment")
.addCatalyst(<minecraft:diamond>)
.build();
催化剂修饰方法
添加催化剂后,可以链式调用以下修饰方法(作用于最后添加的催化剂):
| 方法 | 说明 |
|---|---|
modifySpeed(float) | 修改配方速度倍率 |
modifyEnergy(float) | 修改能量消耗倍率 |
modifyItemInput(float) | 修改物品输入倍率 |
modifyItemOutput(float) | 修改物品输出倍率 |
modifyFluidInput(float) | 修改流体输入倍率 |
modifyFluidOutput(float) | 修改流体输出倍率 |
addTooltip(string) | 添加催化剂提示文字 |
setCatalystTooltip(string...) | 设置催化剂提示(替换已有) |
使用示例
速度催化剂
// 放入钻石催化剂,速度提升 50%
RecipeAdapter.create("my_machine", "thermalexpansion:pulverizer")
.addCatalyst(<minecraft:diamond>)
.modifySpeed(0.5)
.addTooltip("§a速度 +50%")
.build();
产量催化剂
// 放入下界之星,物品输出翻倍
RecipeAdapter.create("my_machine", "enderio:sagmill")
.addCatalyst(<minecraft:nether_star>)
.modifyItemOutput(2.0)
.addTooltip("§6产量 ×2")
.build();
多个催化剂
可以添加多个不同的催化剂,每个催化剂独立配置:
RecipeAdapter.create("my_machine", "mekanism:crusher")
// 催化剂 1:红石 — 加速
.addCatalyst(<minecraft:redstone>)
.modifySpeed(0.8)
.addTooltip("§e速度 +20%")
// 催化剂 2:钻石 — 加速更多
.addCatalyst(<minecraft:diamond>)
.modifySpeed(0.5)
.addTooltip("§a速度 +50%")
// 催化剂 3:下界之星 — 加速 + 双倍产出
.addCatalyst(<minecraft:nether_star>)
.modifySpeed(0.3)
.modifyItemOutput(2.0)
.addTooltip("§6速度 +70%")
.addTooltip("§6产量 ×2")
.build();
高级催化剂 API
如需完全控制催化剂,可使用底层 addCatalystInput() 方法:
import mods.modularmachinery.RecipeModifier;
RecipeAdapter.create("my_machine", "mekanism:enrichment")
.addCatalystInput(
<minecraft:diamond>,
["§a高级催化剂", "§7速度 +50%"] as string[],
[RecipeModifier.create("modularmachinery:duration", "input", 0.5, 1, false)] as RecipeModifier[]
)
.build();