介绍
此模组在样板终端处理模式下按下 EMI/REI 的 + 时,将发送一次 KubeJS 的 ClientEvents.aeRecipeTransfer 事件。
允许修改转移配方时默认的输入输出槽,例如将熔炉配方的输入输出都 *8,并在输入槽添加煤炭,在符文祭坛的输出槽添加符文作为副产物。
示例
kubejs/client_scripts/example.js:
ClientEvents.aeRecipeTransfer((event) => {
const recipeName = event.getRecipeTypeName();
console.log(`recipe name: ${recipeName}`);
switch (recipeName) {
case "minecraft:smelting":
event.initSortedSlots();
console.log("modify smelting...");
let inputs = event.inputs;
for (let index = 0; index < inputs.length; index++) {
let item = inputs[index];
if (event.isItem(item)) inputs[index] = event.itemToGenericStack(item.what().toStack(item.amount() * 8));
}
let outputs = event.outputs;
for (let index = 0; index < outputs.length; index++) {
let item = outputs[index];
if (event.isItem(item)) outputs[index] = event.itemToGenericStack(item.what().toStack(item.amount() * 8));
}
inputs.add(event.itemToGenericStack(Item.of("minecraft:coal")));
break;
case "botania:petal_apothecary":
event.initSortedSlots();
console.log("remove water...");
event.inputs.removeIf((i) => !event.isItem(i));
break;
case "botania:runic_altar":
event.initSortedSlots();
console.log("add runic...");
let catalysts = event.holder.value().catalysts;
if (!catalysts.isEmpty()) {
let lastItem = event.inputs.removeLast();
for (let index = 0; index < catalysts.length; index++) {
let item = event.ingredientToGenericStack(catalysts[index]);
event.inputs.add(item);
event.outputs.add(item);
}
event.inputs.add(lastItem);
}
break;
case "create:mechanical_crafting":
console.log("do not to merge items");
event.initSortedSlots(false);
break;
default:
break;
}
});