promotional bannermobile promotional banner

AE Recipe Tool

Modify pattern terminal recipe transfer by kubejs.

AE Recipe Tool

In pattern terminal processing mode by pressing + of emi/rei, it will send ClientEvents.AeRecipeTransfer events, allowed to modify transfer rescipe. Such as furnace rescipe of input and output multiply by 8, and add the coal in the input slot, add runes to the output slot of runic_altar.

example 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;
    }
});

The AE Recipe Tool Team

profile avatar
  • 5
    Projects
  • 9.7K
    Downloads

More from trichloroisocyanuricView all