From 33088aa174b900219611a52032da7b753793eb4d Mon Sep 17 00:00:00 2001 From: Pyritie Date: Tue, 10 Jun 2025 20:13:03 +0100 Subject: [PATCH] rearranged food recipes into hopefully a good format? --- kubejs/server_scripts/firmalife/recipes.js | 301 --------- kubejs/server_scripts/tfc/recipes.js | 47 -- kubejs/server_scripts/tfc/recipes.machines.js | 165 +---- kubejs/server_scripts/tfg/recipes.food.js | 627 ++++++++++++++++++ kubejs/startup_scripts/firmalife/constants.js | 22 +- kubejs/startup_scripts/tfc/constants.js | 6 + 6 files changed, 652 insertions(+), 516 deletions(-) create mode 100644 kubejs/server_scripts/tfg/recipes.food.js diff --git a/kubejs/server_scripts/firmalife/recipes.js b/kubejs/server_scripts/firmalife/recipes.js index 90d2e64f0..195b9745d 100644 --- a/kubejs/server_scripts/firmalife/recipes.js +++ b/kubejs/server_scripts/firmalife/recipes.js @@ -454,276 +454,6 @@ const registerFirmaLifeRecipes = (event) => { //#endregion - //#region Рецепты муки - - global.FIRMALIFE_QUERN_FLOUR_RECIPE_COMPONENTS.forEach(element => { - event.recipes.gtceu.macerator(`tfg:${element.name}`) - .itemInputs(element.input) - .itemOutputs(element.output) - .duration(200) - .EUt(2) - }) - - //#endregion - - //#region Рецепты теста - - global.FIRMALIFE_MIXER_FLATBREAD_DOUGH_RECIPE_COMPONENTS.forEach(element => { - event.recipes.gtceu.mixer(element.name) - .itemInputs(element.input, '#tfc:sweetener') - .inputFluids(Fluid.of('firmalife:yeast_starter', 100)) - .itemOutputs(element.output) - .duration(300) - .EUt(16) - .circuit(2) - }) - - //#endregion - - //#region Рецепты плоского хлеба - - global.FIRMALIFE_FURNACE_FLATBREAD_RECIPE_COMPONENTS.forEach(element => { - event.smelting(element.output, element.input) - .id(`tfg:smelting/${element.name}`) - }) - - //#endregion - - //#region Смешивание в миске - - // Тесто для пиццы - event.recipes.gtceu.mixer('firmalife:food/pizza_dough_olive_oil') - .itemInputs('firmalife:spice/basil_leaves', '#tfc:foods/dough', 'tfc:powder/salt') - .inputFluids(Fluid.of('tfc:olive_oil', 1000)) - .itemOutputs('4x firmalife:food/pizza_dough') - .duration(300) - .EUt(16) - - event.recipes.gtceu.mixer('firmalife:food/pizza_dough_soybean_oil') - .itemInputs('firmalife:spice/basil_leaves', '#tfc:foods/dough', 'tfc:powder/salt') - .inputFluids(Fluid.of('firmalife:soybean_oil', 1000)) - .itemOutputs('4x firmalife:food/pizza_dough') - .duration(300) - .EUt(16) - - // Vanilla Ice Cream - event.recipes.gtceu.mixer('firmalife:food/vanilla_ice_cream') - .itemInputs('firmalife:ice_shavings', '#tfc:sweetener', 'firmalife:spice/vanilla') - .inputFluids(Fluid.of('firmalife:cream', 1000)) - .itemOutputs('2x firmalife:food/vanilla_ice_cream') - .duration(300) - .EUt(16) - - // Pumpkin Pie Dough - event.recipes.gtceu.mixer('firmalife:food/pumpkin_pie_dough') - .itemInputs('#tfc:sweetener', '#forge:eggs', '2x tfc:food/pumpkin_chunks', '#tfc:foods/flour') - .inputFluids(Fluid.of('minecraft:water', 1000)) - .itemOutputs('firmalife:food/pumpkin_pie_dough') - .duration(300) - .EUt(16) - .circuit(2) - - // Butter - event.recipes.gtceu.mixer('firmalife:food/butter') - .itemInputs('tfc:powder/salt') - .inputFluids(Fluid.of('firmalife:cream', 1000)) - .itemOutputs('firmalife:food/butter') - .duration(300) - .EUt(16) - - // Pie Dough - event.recipes.gtceu.mixer('firmalife:food/pie_dough') - .itemInputs('#tfc:sweetener', 'firmalife:food/butter', '#tfc:foods/flour') - .inputFluids(Fluid.of('minecraft:water', 1000)) - .itemOutputs('firmalife:food/pie_dough') - .duration(300) - .EUt(16) - .circuit(2) - - // Cookie Dough - event.recipes.gtceu.mixer('firmalife:food/cookie_dough') - .itemInputs('#tfc:sweetener', 'firmalife:food/butter', '#tfc:foods/flour', '#forge:eggs', 'firmalife:spice/vanilla') - .itemOutputs('4x firmalife:food/cookie_dough') - .duration(300) - .EUt(16) - - // Hardtack Dough - event.recipes.gtceu.mixer('firmalife:food/hardtack_dough') - .itemInputs('tfc:powder/salt', '#tfc:foods/flour') - .inputFluids(Fluid.of('minecraft:water', 1000)) - .itemOutputs('4x firmalife:food/hardtack_dough') - .duration(300) - .EUt(16) - .circuit(2) - - // Yeast starter - event.recipes.gtceu.mixer('firmalife:yeast_starter') - .inputFluids(Fluid.of('firmalife:yeast_starter', 100)) - .itemInputs('#tfc:foods/flour') - .outputFluids(Fluid.of('firmalife:yeast_starter', 600)) - .duration(1200) - .EUt(8) - .circuit(1) - - // Cocoa Powder - event.recipes.gtceu.macerator('firmalife:food/cocoa_powder') - .itemInputs('gtceu:cocoa_dust') - .itemOutputs('4x firmalife:food/cocoa_powder') - .duration(100) - .EUt(2) - - event.recipes.tfc.quern('4x firmalife:food/cocoa_powder', 'gtceu:cocoa_dust') - .id(`tfg:quern/cocoa_powder`) - - event.recipes.tfc.quern('gtceu:cocoa_dust', 'firmalife:food/roasted_cocoa_beans') - .id('tfg:quern/cocoa_dust'); - - // Chocolate Ice Cream - event.recipes.gtceu.mixer('firmalife:food/chocolate_ice_cream') - .itemInputs('firmalife:food/vanilla_ice_cream') - .inputFluids(Fluid.of('firmalife:chocolate', 1000)) - .itemOutputs('firmalife:food/chocolate_ice_cream') - .duration(300) - .EUt(16) - - // White Chocolate Blend - event.recipes.gtceu.mixer('firmalife:food/white_chocolate_blend/milk') - .itemInputs('2x firmalife:food/cocoa_butter', '#tfc:sweetener') - .inputFluids(Fluid.of('minecraft:milk', 1000)) - .itemOutputs('2x firmalife:food/white_chocolate_blend') - .duration(300) - .EUt(16) - - event.recipes.gtceu.mixer('firmalife:food/white_chocolate_blend/yak_milk') - .itemInputs('2x firmalife:food/cocoa_butter', '#tfc:sweetener') - .inputFluids(Fluid.of('firmalife:yak_milk', 1000)) - .itemOutputs('2x firmalife:food/white_chocolate_blend') - .duration(300) - .EUt(16) - - event.recipes.gtceu.mixer('firmalife:food/white_chocolate_blend/goat_milk') - .itemInputs('2x firmalife:food/cocoa_butter', '#tfc:sweetener') - .inputFluids(Fluid.of('firmalife:goat_milk', 1000)) - .itemOutputs('2x firmalife:food/white_chocolate_blend') - .duration(300) - .EUt(16) - - event.recipes.gtceu.mixer('firmalife:food/white_chocolate_blend/coconut_milk') - .itemInputs('2x firmalife:food/cocoa_butter', '#tfc:sweetener') - .inputFluids(Fluid.of('firmalife:coconut_milk', 1000)) - .itemOutputs('2x firmalife:food/white_chocolate_blend') - .duration(300) - .EUt(16) - - event.smelting('firmalife:food/white_chocolate', 'firmalife:food/white_chocolate_blend') - - // Dark Chocolate Blend - event.recipes.gtceu.mixer('firmalife:food/dark_chocolate_blend/milk') - .itemInputs('2x firmalife:food/cocoa_powder', '#tfc:sweetener') - .inputFluids(Fluid.of('minecraft:milk', 1000)) - .itemOutputs('2x firmalife:food/dark_chocolate_blend') - .duration(300) - .EUt(16) - - event.recipes.gtceu.mixer('firmalife:food/dark_chocolate_blend/yak_milk') - .itemInputs('2x firmalife:food/cocoa_powder', '#tfc:sweetener') - .inputFluids(Fluid.of('firmalife:yak_milk', 1000)) - .itemOutputs('2x firmalife:food/dark_chocolate_blend') - .duration(300) - .EUt(16) - - event.recipes.gtceu.mixer('firmalife:food/dark_chocolate_blend/goat_milk') - .itemInputs('2x firmalife:food/cocoa_powder', '#tfc:sweetener') - .inputFluids(Fluid.of('firmalife:goat_milk', 1000)) - .itemOutputs('2x firmalife:food/dark_chocolate_blend') - .duration(300) - .EUt(16) - - - event.recipes.gtceu.mixer('firmalife:food/dark_chocolate_blend/coconut_milk') - .itemInputs('2x firmalife:food/cocoa_powder', '#tfc:sweetener') - .inputFluids(Fluid.of('firmalife:coconut_milk', 1000)) - .itemOutputs('2x firmalife:food/dark_chocolate_blend') - .duration(300) - .EUt(16) - - event.smelting('firmalife:food/dark_chocolate', 'firmalife:food/dark_chocolate_blend') - - // Milk Chocolate Blend - event.recipes.gtceu.mixer('firmalife:food/milk_chocolate_blend/milk') - .itemInputs('firmalife:food/cocoa_powder', 'firmalife:food/cocoa_butter', '#tfc:sweetener') - .inputFluids(Fluid.of('minecraft:milk', 1000)) - .itemOutputs('2x firmalife:food/milk_chocolate_blend') - .duration(300) - .EUt(16) - - event.recipes.gtceu.mixer('firmalife:food/milk_chocolate_blend/yak_milk') - .itemInputs('firmalife:food/cocoa_powder', 'firmalife:food/cocoa_butter', '#tfc:sweetener') - .inputFluids(Fluid.of('firmalife:yak_milk', 1000)) - .itemOutputs('2x firmalife:food/milk_chocolate_blend') - .duration(300) - .EUt(16) - - event.recipes.gtceu.mixer('firmalife:food/milk_chocolate_blend/goat_milk') - .itemInputs('firmalife:food/cocoa_powder', 'firmalife:food/cocoa_butter', '#tfc:sweetener') - .inputFluids(Fluid.of('firmalife:goat_milk', 1000)) - .itemOutputs('2x firmalife:food/milk_chocolate_blend') - .duration(300) - .EUt(16) - - event.recipes.gtceu.mixer('firmalife:food/milk_chocolate_blend/coconut_milk') - .itemInputs('firmalife:food/cocoa_powder', 'firmalife:food/cocoa_butter', '#tfc:sweetener') - .inputFluids(Fluid.of('firmalife:coconut_milk', 1000)) - .itemOutputs('2x firmalife:food/milk_chocolate_blend') - .duration(300) - .EUt(16) - - event.smelting('firmalife:food/milk_chocolate', 'firmalife:food/milk_chocolate_blend') - - // Strawberry Ice Cream - event.recipes.gtceu.mixer('firmalife:food/strawberry_ice_cream') - .itemInputs('firmalife:food/vanilla_ice_cream', '2x tfc:food/strawberry') - .itemOutputs('firmalife:food/strawberry_ice_cream') - .duration(300) - .EUt(16) - - // Hardtack Dough - event.recipes.gtceu.mixer('firmalife:food/chocolate_chip_cookie_dough') - .itemInputs('4x firmalife:food/cookie_dough', '#firmalife:chocolate_blends') - .itemOutputs('4x firmalife:food/chocolate_chip_cookie_dough') - .duration(300) - .EUt(16) - - //#endregion - - //#region Обжарка некоторой еды - - // Cooked Pizza - event.smelting('firmalife:food/cooked_pizza', 'firmalife:food/raw_pizza') - - // Taco Shell - event.smelting('firmalife:food/taco_shell', 'firmalife:food/corn_tortilla') - - // Sugar Cookie - event.smelting('firmalife:food/sugar_cookie', 'firmalife:food/cookie_dough') - - // Chocolate Chip Cookie - event.smelting('firmalife:food/chocolate_chip_cookie', 'firmalife:food/chocolate_chip_cookie_dough') - - // Hardtack - event.smelting('firmalife:food/hardtack', 'firmalife:food/hardtack_dough') - - // Cooked Pie - event.smelting('firmalife:food/cooked_pie', 'firmalife:food/filled_pie') - - // Roasted Cocoa Beans - event.smelting('firmalife:food/roasted_cocoa_beans', 'firmalife:food/cocoa_beans') - - // Pumpkin Pie - event.smelting('minecraft:pumpkin_pie', 'firmalife:food/raw_pumpkin_pie') - - //#endregion - //#region Sticky Resin by Vat event.recipes.firmalife.vat() @@ -759,28 +489,6 @@ const registerFirmaLifeRecipes = (event) => { // #endregion - // #region Smashed food - - event.recipes.gtceu.forge_hammer('firmalife:soybean_paste') - .itemInputs('firmalife:food/dehydrated_soybeans') - .itemOutputs('firmalife:food/soybean_paste') - .duration(20) - .EUt(7) - - event.recipes.gtceu.forge_hammer('firmalife:red_grapes') - .itemInputs('firmalife:food/red_grapes') - .itemOutputs('firmalife:food/smashed_red_grapes') - .duration(20) - .EUt(7) - - event.recipes.gtceu.forge_hammer('firmalife:white_grapes') - .itemInputs('firmalife:food/white_grapes') - .itemOutputs('firmalife:food/smashed_white_grapes') - .duration(20) - .EUt(7) - - // #endregion - // #region Drying mat alternatives event.shaped('firmalife:drying_mat', ['AAA'], { A: 'tfc:plant/leafy_kelp' }).id('tfg:shaped/drying_mat_leafy_kelp') @@ -795,13 +503,4 @@ const registerFirmaLifeRecipes = (event) => { .circuit(5) .EUt(GTValues.VA[GTValues.ULV]) .duration(200) - - event.smelting('firmalife:food/dehydrated_soybeans', 'tfc:food/soybean') - - event.recipes.gtceu.fermenter('soybean_oil') - .itemInputs('firmalife:food/soybean_paste') - .inputFluids(Fluid.of('minecraft:water', 100)) - .outputFluids(Fluid.of('firmalife:soybean_oil', 250)) - .EUt(GTValues.VA[GTValues.ULV]) - .duration(600) } diff --git a/kubejs/server_scripts/tfc/recipes.js b/kubejs/server_scripts/tfc/recipes.js index d23cb4aad..064774d05 100644 --- a/kubejs/server_scripts/tfc/recipes.js +++ b/kubejs/server_scripts/tfc/recipes.js @@ -34,44 +34,6 @@ const registerTFCRecipes = (event) => { //#endregion - //#region Рецепты зерен - - global.TFC_QUERN_GRAIN_RECIPE_COMPONENTS.forEach(element => { - - event.recipes.gtceu.macerator(`tfg:${element.name}`) - .itemInputs(element.input) - .itemOutputs(element.output) - .chancedOutput('tfc:straw', 7000, 500) - .duration(200) - .EUt(2) - - event.recipes.tfc.quern(element.output, element.input) - .id(`tfg:quern/${element.name}`) - }) - - //#endregion - - //#region Рецепты муки - - global.TFC_QUERN_FLOUR_RECIPE_COMPONENTS.forEach(element => { - event.recipes.gtceu.macerator(`tfg:${element.name}`) - .itemInputs(element.input) - .itemOutputs(element.output) - .duration(200) - .EUt(2) - }) - - //#endregion - - //#region Рецепты обжарки мяса - - global.TFC_FURNACE_MEAT_RECIPE_COMPONENTS.forEach(element => { - event.smelting(element.output, element.input) - .id(`tfg:smelting/${element.name}`) - }) - - //#endregion - //#region Рецепты обжарки форм global.TFC_FURNACE_MOLD_RECIPE_COMPONENTS.forEach(element => { @@ -126,15 +88,6 @@ const registerTFCRecipes = (event) => { //#endregion - //#region Рецепты хлеба - - global.TFC_FURNACE_BREAD_RECIPE_COMPONENTS.forEach(element => { - event.smelting(element.output, element.input) - .id(`tfg:smelting/${element.name}`) - }) - - //#endregion - event.shapeless('tfc:crucible', ['tfc:crucible']).id('tfg:empty_crucible') event.shapeless('2x minecraft:stick', ['#minecraft:saplings', '#forge:tools/knives']).id('tfg:strip_saplings') diff --git a/kubejs/server_scripts/tfc/recipes.machines.js b/kubejs/server_scripts/tfc/recipes.machines.js index ac2370124..44df72c83 100644 --- a/kubejs/server_scripts/tfc/recipes.machines.js +++ b/kubejs/server_scripts/tfc/recipes.machines.js @@ -117,20 +117,6 @@ function registerTFCMachineRecipes(event) { .duration(3200) .EUt(16) - //#region Рецепты плоского теста - - global.TFC_MIXER_FLATBREAD_DOUGH_RECIPE_COMPONENTS.forEach(element => { - event.recipes.gtceu.mixer(element.name) - .itemInputs(element.input) - .inputFluids(Fluid.of('minecraft:water', 100)) - .itemOutputs(element.output) - .duration(300) - .EUt(16) - .circuit(3) - }) - - //#endregion - //#region Молды в ассемблере for (let i = 0; i < global.TFC_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS.length; i++) { @@ -174,158 +160,9 @@ function registerTFCMachineRecipes(event) { .duration(2400) .EUt(16) - // Curdled milk - event.recipes.gtceu.fermenter('tfg:fermenter/curdled_milk') - .inputFluids(Fluid.of('minecraft:milk', 2000)) - .itemInputs('firmalife:rennet') - .outputFluids(Fluid.of('tfc:curdled_milk', 2000)) - .duration(2400) - .EUt(16) - - event.recipes.gtceu.fermenter('tfg:fermenter/curdled_yak_milk') - .inputFluids(Fluid.of('firmalife:yak_milk', 2000)) - .itemInputs('firmalife:rennet') - .outputFluids(Fluid.of('firmalife:curdled_yak_milk', 2000)) - .duration(2400) - .EUt(16) - - event.recipes.gtceu.fermenter('tfg:fermenter/curdled_goat_milk') - .inputFluids(Fluid.of('firmalife:goat_milk', 2000)) - .itemInputs('firmalife:rennet') - .outputFluids(Fluid.of('firmalife:curdled_goat_milk', 2000)) - .duration(2400) - .EUt(16) - - //Curds - event.recipes.gtceu.fermenter('tfg:fermenter/milk_curd') - .inputFluids(Fluid.of('tfc:curdled_milk', 1000)) - .itemOutputs('firmalife:food/milk_curd') - .duration(1200) - .EUt(16) - - event.recipes.gtceu.fermenter('tfg:fermenter/yak_curd') - .inputFluids(Fluid.of('firmalife:curdled_yak_milk', 1000)) - .itemOutputs('firmalife:food/yak_curd') - .duration(1200) - .EUt(16) - - event.recipes.gtceu.fermenter('tfg:fermenter/goat_curd') - .inputFluids(Fluid.of('firmalife:curdled_goat_milk', 1000)) - .itemOutputs('firmalife:food/goat_curd') - .duration(1200) - .EUt(16) - - // Cheese wheels - event.recipes.gtceu.fermenter('tfg:fermenter/gouda_wheel') - .inputFluids(Fluid.of('tfc:salt_water', 750)) - .itemInputs('3x firmalife:food/milk_curd') - .itemOutputs('firmalife:gouda_wheel') - .duration(12000) - .EUt(24) - - event.recipes.gtceu.fermenter('tfg:fermenter/shosha_wheel') - .inputFluids(Fluid.of('tfc:salt_water', 750)) - .itemInputs('3x firmalife:food/yak_curd') - .itemOutputs('firmalife:shosha_wheel') - .duration(12000) - .EUt(24) - - event.recipes.gtceu.fermenter('tfg:fermenter/feta_wheel') - .inputFluids(Fluid.of('tfc:salt_water', 750)) - .itemInputs('3x firmalife:food/goat_curd') - .itemOutputs('firmalife:feta_wheel') - .duration(12000) - .EUt(24) - - // Cutting - event.recipes.gtceu.cutter('tfg:cutter/gouda') - .itemInputs('firmalife:gouda_wheel') - .itemOutputs('4x firmalife:food/gouda') - .duration(40) - .EUt(7) - - event.recipes.gtceu.cutter('tfg:cutter/shosha') - .itemInputs('firmalife:shosha_wheel') - .itemOutputs('4x firmalife:food/shosha') - .duration(40) - .EUt(7) - - event.recipes.gtceu.cutter('tfg:cutter/feta') - .itemInputs('firmalife:feta_wheel') - .itemOutputs('4x firmalife:food/feta') - .duration(40) - .EUt(7) - - event.recipes.gtceu.cutter('tfg:cutter/cheddar') - .itemInputs('firmalife:cheddar_wheel') - .itemOutputs('4x firmalife:food/cheddar') - .duration(40) - .EUt(7) - - event.recipes.gtceu.cutter('tfg:cutter/chevre') - .itemInputs('firmalife:chevre_wheel') - .itemOutputs('4x firmalife:food/chevre') - .duration(40) - .EUt(7) - - event.recipes.gtceu.cutter('tfg:cutter/rajya_metok') - .itemInputs('firmalife:rajya_metok_wheel') - .itemOutputs('4x firmalife:food/rajya_metok') - .duration(40) - .EUt(7) - - // Misc - global.TFC_MILKS.forEach(milk => { - event.recipes.gtceu.fermenter(`tfg:fermenter/cream_from_${milk.id.replace(':', '_')}`) - .inputFluids(Fluid.of(milk.id, 1000)) - .outputFluids(Fluid.of('firmalife:cream')) - .circuit(6) - .duration(1200) - .EUt(24) - }) - - event.recipes.gtceu.mixer('tfg:mixer/tomato_sauce') - .itemInputs('firmalife:food/tomato_sauce_mix') - .inputFluids(Fluid.of('minecraft:water', 200)) - .itemOutputs('firmalife:food/tomato_sauce') - .duration(200) - .EUt(24) - //#endregion - //#region Оливки - - event.recipes.gtceu.macerator(`tfg:tfc/olive_paste`) - .itemInputs('tfc:food/olive') - .itemOutputs('2x tfc:olive_paste') - .duration(60) - .EUt(2) - - event.recipes.gtceu.mixer('tfg:tfc/olive_oil_water') - .inputFluids(Fluid.of('water', 200)) - .itemInputs('1x tfc:olive_paste') - .outputFluids(Fluid.of('tfc:olive_oil_water', 200)) - .duration(200) - .EUt(28) - - event.recipes.gtceu.distillery('tfg:tfc/olive_oil') - .inputFluids(Fluid.of('tfc:olive_oil_water', 250)) - .outputFluids(Fluid.of('tfc:olive_oil', 50)) - .duration(600) - .EUt(28) - - //#endregion - - // Vinegar and Brine - - global.TFC_ALCOHOL.forEach(alcohol => { - event.recipes.gtceu.fermenter(`tfg:tfc/vinegar/${alcohol.id.replace(':', '_')}`) - .itemInputs('#tfc:foods/fruits') - .inputFluids(Fluid.of(alcohol.id, 250)) - .outputFluids(Fluid.of('tfc:vinegar', 250)) - .duration(600) - .EUt(28) - }) + // Brine event.recipes.gtceu.mixer('tfg:tfc/brine') .inputFluids(Fluid.of('tfc:salt_water', 900)) diff --git a/kubejs/server_scripts/tfg/recipes.food.js b/kubejs/server_scripts/tfg/recipes.food.js new file mode 100644 index 000000000..d88c10d10 --- /dev/null +++ b/kubejs/server_scripts/tfg/recipes.food.js @@ -0,0 +1,627 @@ +// priority: 0 + +function registerTFGFoodRecipes(event) { + + //#region ================= Meat cooking ================= + + global.TFC_FURNACE_MEAT_RECIPE_COMPONENTS.forEach(item => { + + registerTFCRecipeProperties(item.name, + [ TFC.ingredient.notRotten(item.input) ], + TFC.isp.of(item.output).copyFood().addTrait('firmalife:oven_baked') + ) + + event.recipes.gtceu.electric_oven(item.name) + .itemInputs(item.input) + .itemOutputs(item.output) + .duration(300) + .EUt(16) + }) + + //#endregion + //#region ================= Cutting grains ================= + + global.TFC_QUERN_GRAIN_RECIPE_COMPONENTS.forEach(item => { + + registerTFCRecipeProperties(item.name, + [ TFC.ingredient.notRotten(item.input) ], + TFC.isp.of(item.output).copyFood() + ) + + event.recipes.gtceu.food_processor(item.name) + .itemInputs(item.input) + .itemOutputs(item.output) + .duration(100) + .EUt(2) + }) + + //#endregion + //#region ================= Grains to flour ================= + + global.TFC_QUERN_FLOUR_RECIPE_COMPONENTS.forEach(item => { + + registerTFCRecipeProperties(item.name, + [ TFC.ingredient.notRotten(item.input) ], + TFC.isp.of(item.output).copyFood() + ) + + event.recipes.gtceu.food_processor(item.name) + .itemInputs(item.input) + .itemOutputs(item.output) + .duration(100) + .EUt(2) + }) + + global.FIRMALIFE_QUERN_FLOUR_RECIPE_COMPONENTS.forEach(item => { + + registerTFCRecipeProperties(item.name, + [ TFC.ingredient.notRotten(item.input) ], + TFC.isp.of(item.output).copyFood() + ) + + event.recipes.gtceu.food_processor(item.name) + .itemInputs(item.input) + .itemOutputs(item.output) + .duration(100) + .EUt(2) + }) + + //#endregion + //#region ================= Dough ================= + + global.TFC_MIXER_FLATBREAD_DOUGH_RECIPE_COMPONENTS.forEach(item => { + registerTFCRecipeProperties(item.name, + [ TFC.ingredient.notRotten(item.input) ], + TFC.isp.of(item.output).copyOldestFood() + ) + + event.recipes.gtceu.food_processor(item.name) + .itemInputs(item.input) + .inputFluids(Fluid.of('minecraft:water', 100)) + .itemOutputs(item.output) + .duration(300) + .EUt(16) + }) + + global.FIRMALIFE_MIXER_FLATBREAD_DOUGH_RECIPE_COMPONENTS.forEach(item => { + registerTFCRecipeProperties(item.name, + [ TFC.ingredient.notRotten(item.input) ], + TFC.isp.of(item.output).copyOldestFood() + ) + + event.recipes.gtceu.food_processor(item.name) + .itemInputs(item.input) + .inputFluids(Fluid.of('minecraft:water', 100)) + .itemOutputs(item.output) + .duration(300) + .EUt(16) + }) + + //#endregion + //#region ================= Baking bread ================= + + global.TFC_FURNACE_BREAD_RECIPE_COMPONENTS.forEach(item => { + registerTFCRecipeProperties(item.name, + [ TFC.ingredient.notRotten(item.input) ], + TFC.isp.of(item.output).copyFood().addTrait('firmalife:oven_baked') + ) + + event.recipes.gtceu.electric_oven(item.name) + .itemInputs(item.input) + .itemOutputs(item.output) + .duration(300) + .EUt(16) + }) + + global.FIRMALIFE_FURNACE_FLATBREAD_RECIPE_COMPONENTS.forEach(item => { + registerTFCRecipeProperties(item.name, + [ TFC.ingredient.notRotten(item.input) ], + TFC.isp.of(item.output).copyFood().addTrait('firmalife:oven_baked') + ) + + event.recipes.gtceu.electric_oven(item.name) + .itemInputs(item.input) + .itemOutputs(item.output) + .duration(300) + .EUt(16) + }) + + //#endregion + //#region ================= Firmalife ================= + + global.FIRMALIFE_COOKING_RECIPE_COMPONENTS.forEach(item => { + + registerTFCRecipeProperties(item.name, + [ TFC.ingredient.notRotten(item.input) ], + TFC.isp.of(item.output).firmaLifeCopyDynamicFood() + ) + + event.recipes.gtceu.electric_oven(item.name) + .itemInputs(item.input) + .itemOutputs(item.output) + .duration(300) + .EUt(16) + }) + + //#endregion + //#region ================= Dairy ================= + + global.TFC_CURDS_AND_CHEESES.forEach(item => { + + // Curds + registerTFCRecipeProperties(`${item.id}_curd`, + [], TFC.isp.of(item.curd).resetFood() + ) + + event.recipes.gtceu.food_processor(`${item.id}_curd`) + .inputFluids(Fluid.of(item.input_fluid, 1000)) + .itemOutputs(item.curd) + .duration(1200) + .EUt(16) + + // Sealed barrel cheese wheels + registerTFCRecipeProperties(`${item.id}_cheese_wheel_1`, + [ TFC.ingredient.notRotten(item.curd) ], + TFC.isp.of(`firmalife:${item.cheese1}_wheel`).copyOldestFood() + ) + + event.recipes.gtceu.food_processor(`${item.id}_cheese_wheel_1`) + .itemInputs(Item.of(item.curd, 3)) + .inputFluids(Fluid.of('tfc:salt_water', 750)) + .itemOutputs(`firmalife:${item.cheese1}_wheel`) + .circuit(1) + .duration(8000) + .EUt(16) + + // Crafting table cheese wheels + registerTFCRecipeProperties(`${item.id}_cheese_wheel_2`, + [ TFC.ingredient.notRotten(item.curd) ], + TFC.isp.of(`firmalife:${item.cheese2}_wheel`).copyOldestFood() + ) + + event.recipes.gtceu.food_processor(`${item.id}_cheese_wheel_2`) + .itemInputs(Item.of(item.curd, 6), '3x tfc:powder/salt') + .itemOutputs(`firmalife:${item.cheese2}_wheel`) + .circuit(2) + .duration(300) + .EUt(16) + + // Cheese cutting + registerTFCRecipeProperties(`${item.cheese1}_cheese_cutting_1`, + [ TFC.ingredient.notRotten(`firmalife:${item.cheese1}_wheel`) ], + TFC.isp.of(`firmalife:food/${item.cheese1}`).copyOldestFood() + ) + + event.recipes.gtceu.food_processor(`${item.cheese1}_cheese_cutting_1`) + .itemInputs(`firmalife:${item.cheese1}_wheel`) + .itemOutputs(`4x firmalife:food/${item.cheese1}`) + .duration(100) + .EUt(7) + + registerTFCRecipeProperties(`${item.cheese2}_cheese_cutting_2`, + [ TFC.ingredient.notRotten(`firmalife:${item.cheese2}_wheel`) ], + TFC.isp.of(`firmalife:food/${item.cheese2}`).copyOldestFood() + ) + + event.recipes.gtceu.food_processor(`${item.cheese2}_cheese_cutting_2`) + .itemInputs(`firmalife:${item.cheese2}_wheel`) + .itemOutputs(`4x firmalife:food/${item.cheese2}`) + .duration(100) + .EUt(7) + }) + + // White Chocolate Blend + registerTFCRecipeProperties(`white_chocolate_blend`, + [ TFC.ingredient.notRotten('firmalife:food/cocoa_butter') ], + TFC.isp.of('firmalife:food/white_chocolate_blend').copyOldestFood()) + + event.recipes.gtceu.food_processor(`white_chocolate_blend`) + .itemInputs('2x firmalife:food/cocoa_butter', '#tfc:sweetener') + .inputFluids(Fluid.of('#tfc:milks', 1000)) + .itemOutputs('2x firmalife:food/white_chocolate_blend') + .circuit(1) + .duration(300) + .EUt(16) + + // Dark Chocolate Blend + registerTFCRecipeProperties(`dark_chocolate_blend`, + [], TFC.isp.of('firmalife:food/dark_chocolate_blend').resetFood()) + + event.recipes.gtceu.food_processor(`dark_chocolate_blend`) + .itemInputs('2x firmalife:food/cocoa_powder', '#tfc:sweetener') + .inputFluids(Fluid.of('#tfc:milks', 1000)) + .itemOutputs('2x firmalife:food/dark_chocolate_blend') + .circuit(1) + .duration(300) + .EUt(16) + + // Milk Chocolate Blend + registerTFCRecipeProperties(`milk_chocolate_blend`, + [ TFC.ingredient.notRotten('firmalife:food/cocoa_butter') ], + TFC.isp.of('firmalife:food/milk_chocolate_blend').copyOldestFood()) + + event.recipes.gtceu.food_processor(`milk_chocolate_blend`) + .itemInputs('firmalife:food/cocoa_powder', 'firmalife:food/cocoa_butter', '#tfc:sweetener') + .inputFluids(Fluid.of('#tfc:milks', 1000)) + .itemOutputs('2x firmalife:food/milk_chocolate_blend') + .circuit(2) + .duration(300) + .EUt(16) + + //#endregion + + //#region ================= Misc ================= + + registerTFCRecipeProperties('tomato_sauce', + [ TFC.ingredient.notRotten('tfc:food/tomato'), TFC.ingredient.notRotten('tfc:food/garlic') ], + TFC.isp.of('firmalife:food/tomato_sauce').copyOldestFood()) + + event.recipes.gtceu.food_processor('tomato_sauce') + .itemInputs('tfc:food/tomato', 'tfc:powder/salt', 'tfc:food/garlic') + .inputFluids(Fluid.of('minecraft:water', 100)) + .itemOutputs('5x firmalife:food/tomato_sauce') + .duration(2000) + .EUt(7) + + registerTFCRecipeProperties('tomato_sauce_from_mix', + [ TFC.ingredient.notRotten("firmalife:food/tomato_sauce_mix") ], + TFC.isp.of('firmalife:food/tomato_sauce').copyOldestFood()) + + event.recipes.gtceu.food_processor('tomato_sauce_from_mix') + .itemInputs("firmalife:food/tomato_sauce_mix") + .inputFluids(Fluid.of('minecraft:water', 200)) + .itemOutputs('firmalife:food/tomato_sauce') + .duration(200) + .EUt(7) + + registerTFCRecipeProperties('olive_paste', + [ TFC.ingredient.notRotten('tfc:food/olive') ]) + + event.recipes.gtceu.food_processor(`olive_paste`) + .itemInputs('tfc:food/olive') + .itemOutputs('2x tfc:olive_paste') + .duration(60) + .EUt(2) + + registerTFCRecipeProperties('soybean_paste', + [ TFC.ingredient.notRotten('tfc:food/soybean') ]) + + event.recipes.gtceu.food_processor(`soybean_paste`) + .itemInputs('tfc:food/soybean') + .itemOutputs('2x firmalife:soybean_paste') + .duration(60) + .EUt(2) + + // Vinegar + global.TFC_ALCOHOL.forEach(alcohol => { + let name = `vinegar/${alcohol.id.replace(':', '_')}`; + + registerTFCRecipeProperties(name, + [ TFC.ingredient.notRotten('#tfc:foods/fruits') ]) + + event.recipes.gtceu.food_processor(name) + .itemInputs('#tfc:foods/fruits') + .inputFluids(Fluid.of(alcohol.id, 250)) + .outputFluids(Fluid.of('tfc:vinegar', 250)) + .circuit(5) + .duration(600) + .EUt(28) + }) + + // Pizzas + registerTFCRecipeProperties('pizza_dough_olive_oil', + [ TFC.ingredient.notRotten('#tfc:foods/dough') ], + TFC.isp.of('firmalife:food/pizza_dough').copyOldestFood()) + + event.recipes.gtceu.food_processor('pizza_dough_olive_oil') + .itemInputs('firmalife:spice/basil_leaves', '#tfc:foods/dough', 'tfc:powder/salt') + .inputFluids(Fluid.of('tfc:olive_oil', 1000)) + .itemOutputs('4x firmalife:food/pizza_dough') + .duration(300) + .EUt(16) + + registerTFCRecipeProperties('pizza_dough_soybean_oil', + [ TFC.ingredient.notRotten('#tfc:foods/dough') ], + TFC.isp.of('firmalife:food/pizza_dough').copyOldestFood()) + + event.recipes.gtceu.food_processor('pizza_dough_soybean_oil') + .itemInputs('firmalife:spice/basil_leaves', '#tfc:foods/dough', 'tfc:powder/salt') + .inputFluids(Fluid.of('firmalife:soybean_oil', 1000)) + .itemOutputs('4x firmalife:food/pizza_dough') + .duration(300) + .EUt(16) + + // Ice Cream + registerTFCRecipeProperties('vanilla_ice_cream', + [], TFC.isp.of('firmalife:food/vanilla_ice_cream').resetFood()) + + event.recipes.gtceu.food_processor('vanilla_ice_cream') + .itemInputs('firmalife:ice_shavings', '#tfc:sweetener', 'firmalife:spice/vanilla') + .inputFluids(Fluid.of('firmalife:cream', 1000)) + .itemOutputs('2x firmalife:food/vanilla_ice_cream') + .duration(300) + .EUt(16) + + registerTFCRecipeProperties('chocolate_ice_cream', + [ TFC.ingredient.notRotten('firmalife:food/vanilla_ice_cream') ], + TFC.isp.of('firmalife:food/chocolate_ice_cream').copyOldestFood()) + + event.recipes.gtceu.food_processor('chocolate_ice_cream') + .itemInputs('firmalife:food/vanilla_ice_cream') + .inputFluids(Fluid.of('firmalife:chocolate', 1000)) + .itemOutputs('firmalife:food/chocolate_ice_cream') + .duration(300) + .EUt(16) + + registerTFCRecipeProperties('strawberry_ice_cream', + [ TFC.ingredient.notRotten('firmalife:food/vanilla_ice_cream'), TFC.ingredient.notRotten('tfc:food/strawberry') ], + TFC.isp.of('firmalife:food/strawberry_ice_cream').copyOldestFood()) + + event.recipes.gtceu.food_processor('strawberry_ice_cream') + .itemInputs('firmalife:food/vanilla_ice_cream', '2x tfc:food/strawberry') + .itemOutputs('firmalife:food/strawberry_ice_cream') + .duration(300) + .EUt(16) + + // Butter + registerTFCRecipeProperties('butter', + [], TFC.isp.of('firmalife:food/butter').resetFood()) + + event.recipes.gtceu.food_processor('butter') + .itemInputs('tfc:powder/salt') + .inputFluids(Fluid.of('firmalife:cream', 1000)) + .itemOutputs('firmalife:food/butter') + .duration(300) + .EUt(16) + + // Pie Dough + registerTFCRecipeProperties('pie_dough', + [ TFC.ingredient.notRotten('firmalife:food/butter'), TFC.ingredient.notRotten('#tfc:foods/flour') ], + TFC.isp.of('firmalife:food/pie_dough').copyOldestFood()) + + event.recipes.gtceu.food_processor('pie_dough') + .itemInputs('#tfc:sweetener', 'firmalife:food/butter', '#tfc:foods/flour') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .itemOutputs('firmalife:food/pie_dough') + .duration(300) + .EUt(16) + .circuit(2) + + // Pumpkin Pie Dough + registerTFCRecipeProperties('pumpkin_pie_dough', + [ TFC.ingredient.notRotten('#forge:eggs'), TFC.ingredient.notRotten('tfc:food/pumpkin_chunks'), TFC.ingredient.notRotten('#tfc:foods/flour') ], + TFC.isp.of('firmalife:food/pumpkin_pie_dough').copyOldestFood()) + + event.recipes.gtceu.food_processor('pumpkin_pie_dough') + .itemInputs('#tfc:sweetener', '#forge:eggs', '2x tfc:food/pumpkin_chunks', '#tfc:foods/flour') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .itemOutputs('firmalife:food/pumpkin_pie_dough') + .duration(300) + .EUt(16) + .circuit(2) + + // Cookie Dough + registerTFCRecipeProperties('cookie_dough', + [ TFC.ingredient.notRotten('firmalife:food/butter'), TFC.ingredient.notRotten('#tfc:foods/flour'), TFC.ingredient.notRotten('#forge:eggs') ], + TFC.isp.of('4x firmalife:food/cookie_dough').copyOldestFood()) + + event.recipes.gtceu.food_processor('cookie_dough') + .itemInputs('#tfc:sweetener', 'firmalife:food/butter', '#tfc:foods/flour', '#forge:eggs', 'firmalife:spice/vanilla') + .itemOutputs('4x firmalife:food/cookie_dough') + .duration(300) + .EUt(16) + + registerTFCRecipeProperties('chocolate_chip_cookie_dough', + [ TFC.ingredient.notRotten('firmalife:food/cookie_dough'), TFC.ingredient.notRotten('#firmalife:chocolate_blends') ], + TFC.isp.of('4x firmalife:food/chocolate_chip_cookie_dough').copyOldestFood()) + + event.recipes.gtceu.food_processor('chocolate_chip_cookie_dough') + .itemInputs('4x firmalife:food/cookie_dough', '#firmalife:chocolate_blends') + .itemOutputs('4x firmalife:food/chocolate_chip_cookie_dough') + .duration(300) + .EUt(16) + + // Hardtack Dough + registerTFCRecipeProperties('hardtack_dough', + [ TFC.ingredient.notRotten('#tfc:foods/flour') ], + TFC.isp.of('4x firmalife:food/hardtack_dough').copyOldestFood()) + + event.recipes.gtceu.food_processor('hardtack_dough') + .itemInputs('tfc:powder/salt', '#tfc:foods/flour') + .inputFluids(Fluid.of('minecraft:water', 1000)) + .itemOutputs('4x firmalife:food/hardtack_dough') + .duration(300) + .EUt(16) + .circuit(4) + + // Yeast starter + registerTFCRecipeProperties('yeast_starter', + [ TFC.ingredient.notRotten('#tfc:foods/flour') ]) + + event.recipes.gtceu.food_processor('yeast_starter') + .inputFluids(Fluid.of('firmalife:yeast_starter', 100)) + .itemInputs('#tfc:foods/flour') + .outputFluids(Fluid.of('firmalife:yeast_starter', 600)) + .duration(1200) + .EUt(8) + .circuit(1) + + // Cocoa Dust + registerTFCRecipeProperties('cocoa_dust', + [ TFC.ingredient.notRotten('firmalife:food/roasted_cocoa_beans') ]) + + event.recipes.gtceu.food_processor('cocoa_dust') + .itemInputs('firmalife:food/roasted_cocoa_beans') + .itemOutputs('gtceu:cocoa_dust') + .duration(100) + .EUt(2) + + // Soybean paste + registerTFCRecipeProperties('soybean_paste', + [ TFC.ingredient.notRotten('firmalife:food/dehydrated_soybeans') ]) + + event.recipes.gtceu.food_processor('soybean_paste') + .itemInputs('firmalife:food/dehydrated_soybeans') + .itemOutputs('firmalife:food/soybean_paste') + .duration(50) + .EUt(7) + + // Smashed red grapes + registerTFCRecipeProperties('red_grapes', + [ TFC.ingredient.notRotten('firmalife:food/red_grapes') ], + TFC.isp.of('firmalife:food/smashed_red_grapes').copyOldestFood()) + + event.recipes.gtceu.food_processor('red_grapes') + .itemInputs('firmalife:food/red_grapes') + .itemOutputs('firmalife:food/smashed_red_grapes') + .duration(50) + .EUt(7) + + // Smashed white grapes + registerTFCRecipeProperties('white_grapes', + [ TFC.ingredient.notRotten('firmalife:food/white_grapes') ], + TFC.isp.of('firmalife:food/smashed_white_grapes').copyOldestFood()) + + event.recipes.gtceu.food_processor('white_grapes') + .itemInputs('firmalife:food/white_grapes') + .itemOutputs('firmalife:food/smashed_white_grapes') + .duration(50) + .EUt(7) + + // Egg Noodles + registerTFCRecipeProperties('egg_noodles', + [ TFC.ingredient.notRotten("firmalife:foods/egg_noodle_flour"), TFC.ingredient.notRotten('#forge:eggs') ], + TFC.isp.of('firmalife:food/smashed_white_grapes').copyOldestFood()) + + event.recipes.gtceu.food_processor('egg_noodles') + .itemInputs("firmalife:foods/egg_noodle_flour", 'tfc:powder/salt', '#forge:eggs') + .inputFluids(Fluid.of('#tfc:milks', 1000)) + .itemOutputs('firmalife:food/raw_egg_noodles') + .duration(50) + .EUt(7) + + // Rice Noodles + registerTFCRecipeProperties('rice_noodles', + [ TFC.ingredient.notRotten("tfc:food/rice_flour"), TFC.ingredient.notRotten('tfc:food/maize_flour') ], + TFC.isp.of('firmalife:food/raw_rice_noodles').copyOldestFood()) + + event.recipes.gtceu.food_processor('rice_noodles') + .itemInputs("tfc:food/rice_flour", 'tfc:food/maize_flour', 'tfc:powder/salt') + .inputFluids(Fluid.of('#tfc:milks', 1000)) + .itemOutputs('2x firmalife:food/raw_egg_noodles') + .duration(50) + .EUt(7) + + // Cured Maize + registerTFCRecipeProperties('cured_maize', + [ TFC.ingredient.notRotten("tfc:food/maize_grain") ], + TFC.isp.of('firmalife:food/cured_maize').copyOldestFood()) + + event.recipes.gtceu.food_processor('cured_maize') + .itemInputs("tfc:food/maize_grain") + .inputFluids(Fluid.of('tfc:limewater', 100)) + .itemOutputs('firmalife:food/cured_maize') + .duration(300) + .EUt(7) + + // Soy Mixture + registerTFCRecipeProperties('soy_mixture', + [ TFC.ingredient.notRotten("tfc:food/soybean") ], + TFC.isp.of('firmalife:food/soy_mixture').copyOldestFood()) + + event.recipes.gtceu.food_processor('soy_mixture') + .itemInputs("tfc:food/soybean", 'tfc:powder/salt') + .inputFluids(Fluid.of('minecraft:water', 50)) + .itemOutputs('firmalife:food/soy_mixture') + .duration(300) + .EUt(7) + + // Boiled Egg + registerTFCRecipeProperties('boiled_egg', + [ TFC.ingredient.notRotten('#firmalife:foods/raw_eggs') ], + TFC.isp.of('firmalife:food/soy_mixture').copyOldestFood()) + + event.recipes.gtceu.food_processor('boiled_egg') + .itemInputs('#firmalife:foods/raw_eggs') + .inputFluids(Fluid.of('minecraft:water', 200)) + .itemOutputs('firmalife:food/boiled_egg') + .duration(200) + .EUt(7) + + // Cooked rice + registerTFCRecipeProperties('cooked_rice', + [ TFC.ingredient.notRotten('tfc:food/rice_grain') ], + TFC.isp.of('firmalife:food/soy_mixture').copyOldestFood()) + + event.recipes.gtceu.food_processor('cooked_rice') + .itemInputs('tfc:food/rice_grain') + .inputFluids(Fluid.of('minecraft:water', 200)) + .itemOutputs('firmalife:food/cooked_rice') + .duration(200) + .EUt(7) + + // These don't need the ISP handling, they're just here to keep all the food recipes together + + event.recipes.gtceu.mixer('tfg:tfc/olive_oil_water') + .inputFluids(Fluid.of('water', 200)) + .itemInputs('1x tfc:olive_paste') + .outputFluids(Fluid.of('tfc:olive_oil_water', 200)) + .duration(200) + .EUt(28) + + event.recipes.gtceu.distillery('tfg:tfc/olive_oil') + .inputFluids(Fluid.of('tfc:olive_oil_water', 250)) + .outputFluids(Fluid.of('tfc:olive_oil', 50)) + .duration(600) + .EUt(28) + + event.recipes.gtceu.fermenter('soybean_oil') + .itemInputs('firmalife:food/soybean_paste') + .inputFluids(Fluid.of('minecraft:water', 100)) + .outputFluids(Fluid.of('firmalife:soybean_oil', 250)) + .EUt(GTValues.VA[GTValues.ULV]) + .duration(600) + + event.recipes.gtceu.fermenter(`tfg:fermenter/cream_from_${name}`) + .inputFluids(Fluid.of('#tfc:milks', 1000)) + .outputFluids(Fluid.of('firmalife:cream')) + .circuit(6) + .duration(1200) + .EUt(24) + + event.recipes.gtceu.fermenter('tfg:fermenter/curdled_milk') + .inputFluids(Fluid.of('minecraft:milk', 2000)) + .itemInputs('firmalife:rennet') + .outputFluids(Fluid.of('tfc:curdled_milk', 2000)) + .duration(2400) + .EUt(16) + + event.recipes.gtceu.fermenter('tfg:fermenter/curdled_yak_milk') + .inputFluids(Fluid.of('firmalife:yak_milk', 2000)) + .itemInputs('firmalife:rennet') + .outputFluids(Fluid.of('firmalife:curdled_yak_milk', 2000)) + .duration(2400) + .EUt(16) + + event.recipes.gtceu.fermenter('tfg:fermenter/curdled_goat_milk') + .inputFluids(Fluid.of('firmalife:goat_milk', 2000)) + .itemInputs('firmalife:rennet') + .outputFluids(Fluid.of('firmalife:curdled_goat_milk', 2000)) + .duration(2400) + .EUt(16) + + // GT cocoa dust compat + event.recipes.gtceu.macerator('firmalife:food/cocoa_powder') + .itemInputs('gtceu:cocoa_dust') + .itemOutputs('4x firmalife:food/cocoa_powder') + .duration(100) + .EUt(2) + + event.recipes.tfc.quern('4x firmalife:food/cocoa_powder', 'gtceu:cocoa_dust') + .id(`tfg:quern/cocoa_powder`) + + event.recipes.tfc.quern('gtceu:cocoa_dust', 'firmalife:food/roasted_cocoa_beans') + .id('tfg:quern/cocoa_dust'); + + //#endregion +} \ No newline at end of file diff --git a/kubejs/startup_scripts/firmalife/constants.js b/kubejs/startup_scripts/firmalife/constants.js index e0e9b6220..076a81f24 100644 --- a/kubejs/startup_scripts/firmalife/constants.js +++ b/kubejs/startup_scripts/firmalife/constants.js @@ -94,10 +94,6 @@ global.FIRMALIFE_GREENHOUSE_BERRY_RECIPE_COMPONENTS = [ { input: 'firmalife:plant/nightshade_bush', fluid_amount: 6000, output: '3x firmalife:food/nightshade_berry', name: 'nightshade' }, ]; -global.FIRMALIFE_QUERN_FLOUR_RECIPE_COMPONENTS = [ - { input: 'firmalife:food/nixtamal', output: '2x firmalife:food/masa_flour', name: 'masa_flour' }, -]; - global.FIRMALIFE_MIXER_FLATBREAD_DOUGH_RECIPE_COMPONENTS = [ { input: 'tfc:food/barley_flour', output: '4x firmalife:food/barley_dough', name: 'firmalife_barley_dough' }, { input: 'tfc:food/maize_flour', output: '4x firmalife:food/maize_dough', name: 'firmalife_maize_dough' }, @@ -117,3 +113,21 @@ global.FIRMALIFE_FURNACE_FLATBREAD_RECIPE_COMPONENTS = [ { input: 'tfc:food/wheat_dough', output: 'firmalife:food/wheat_flatbread', name: 'wheat_flatbread' }, { input: 'firmalife:food/masa', output: 'firmalife:food/corn_tortilla', name: 'corn_tortilla' }, ]; + +global.FIRMALIFE_COOKING_RECIPE_COMPONENTS = [ + { input: 'firmalife:food/white_chocolate_blend', output: 'firmalife:food/white_chocolate', name: 'white_chocolate' }, + { input: 'firmalife:food/dark_chocolate_blend', output: 'firmalife:food/dark_chocolate', name: 'dark_chocolate' }, + { input: 'firmalife:food/milk_chocolate_blend', output: 'firmalife:food/milk_chocolate', name: 'milk_chocolate' }, + { input: 'firmalife:food/raw_pizza', output: 'firmalife:food/cooked_pizza', name: 'cooked_pizza' }, + { input: 'firmalife:food/corn_tortilla', output: 'firmalife:food/taco_shell', name: 'taco_shell' }, + { input: 'firmalife:food/cookie_dough', output: 'firmalife:food/sugar_cookie', name: 'sugar_cookie' }, + { input: 'firmalife:food/chocolate_chip_cookie_dough', output: 'firmalife:food/chocolate_chip_cookie', name: 'chocolate_chip_cookie' }, + { input: 'firmalife:food/hardtack_dough', output: 'firmalife:food/hardtack', name: 'hardtack' }, + { input: 'firmalife:food/filled_pie', output: 'firmalife:food/cooked_pie', name: 'cooked_pie' }, + { input: 'firmalife:food/cocoa_beans', output: 'firmalife:food/roasted_cocoa_beans', name: 'roasted_cocoa_beans' }, + { input: 'firmalife:food/raw_pumpkin_pie', output: 'firmalife:food/pumpkin_pie', name: 'pumpkin_pie' }, + { input: 'tfc:food/soybean', output: 'firmalife:food/dehydrated_soybeans', name: 'dehydrated_soybeans' }, + { input: 'firmalife:food/raw_lasagna', output: 'firmalife:food/cooked_lasagna', name: 'cooked_lasagna' }, + { input: 'firmalife:food/bacon', output: 'firmalife:food/cooked_bacon', name: 'cooked_bacon' }, + { input: '#firmalife:foods/slices', output: 'firmalife:food/toast', name: 'toast' } +]; \ No newline at end of file diff --git a/kubejs/startup_scripts/tfc/constants.js b/kubejs/startup_scripts/tfc/constants.js index ce425b1ff..1ffefc5bf 100644 --- a/kubejs/startup_scripts/tfc/constants.js +++ b/kubejs/startup_scripts/tfc/constants.js @@ -1019,6 +1019,12 @@ global.TFC_MILKS = [ {id: 'firmalife:coconut_milk'}, ]; +global.TFC_CURDS_AND_CHEESES = [ + { id: 'milk', input_fluid: 'tfc:curdled_milk', curd: 'firmalife:food/milk_curd', cheese1: 'gouda', cheese2: 'cheddar' }, + { id: 'yak', input_fluid: 'tfc:curdled_yak_milk', curd: 'firmalife:food/yak_curd', cheese1: 'shosha', cheese2: 'rajya_metok' }, + { id: 'goat', input_fluid: 'tfc:curdled_goat_milk', curd: 'firmalife:food/goat_curd', cheese1: 'feta', cheese2: 'chevre' }, +]; + global.TFC_ALCOHOL = [ {id: 'tfc:beer'}, {id: 'tfc:cider'},