From 2a2d2da626b16a8f39fdfd1fc876d7c95c422b41 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Mon, 27 Oct 2025 21:39:28 +0000 Subject: [PATCH] added normal tfc bowl dough recipes --- CHANGELOG.md | 2 + kubejs/server_scripts/firmalife/recipes.js | 180 ++++++++++++++++----- 2 files changed, 138 insertions(+), 44 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1eb957fb4..287887f85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ - Added TACZ Ammo Boxes @BlueBoat29 - Added TACZ Guns and Ammo Boxes to tool rack @BlueBoat29 - Overhauled the recycling recipes and added many more (#1576) @Pyritie +- Added an earlier way to make dough using a normal tfc ceramic/wood bowl @Pyritie ### Bug fixes - Fixed part of the tungsten processing loop giving way too much salt (#2095) @Redeix - Fixed basic super tanks so you can now left/right click with them in GUIs like you can with the others (#2100) @jurrejelle @@ -21,6 +22,7 @@ - Fixed not being able to ride Soarers (#2082) @Pyritie - Fixed Soarer "flap" GUI overlapping with the minimap @Pyritie - Fixed aqueduct recipes (#2101) @vidal-adrien +- Fixed some AFC logs not having stripping recipes @Pyritie ### Translation updates - Chinese (simplified) @jmecn - Ukranian @MetEnBouldry diff --git a/kubejs/server_scripts/firmalife/recipes.js b/kubejs/server_scripts/firmalife/recipes.js index 6dd356a5c..378369281 100644 --- a/kubejs/server_scripts/firmalife/recipes.js +++ b/kubejs/server_scripts/firmalife/recipes.js @@ -509,7 +509,7 @@ const registerFirmaLifeRecipes = (event) => { .id('tfg:vat/sugar_water') //#endregion - + //#region Salt by Vat event.recipes.firmalife.vat() @@ -574,70 +574,122 @@ const registerFirmaLifeRecipes = (event) => { // Dough global.TFC_GRAINS.forEach(grain => { - event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`4x firmalife:food/${grain}_dough`).copyFood(), [ + event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`2x firmalife:food/${grain}_dough`).copyFood(), [ 'firmalife:spoon', TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), - 'firmalife:tirage_mixture', + 'firmalife:tirage_mixture', '#tfc:bowls' ]).keepIngredient('#tfc:bowls').id(`tfg:shapeless/${grain}_dough`) event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`4x firmalife:food/${grain}_dough`).copyFood(), [ 'firmalife:spoon', TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), - 'firmalife:tirage_mixture', + 'firmalife:tirage_mixture', 'firmalife:mixing_bowl' ]).id(`tfg:shapeless/${grain}_dough_mixing`) + event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`4x firmalife:food/${grain}_dough`).copyFood(), [ + 'firmalife:spoon', + TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), + TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), + '2x firmalife:tirage_mixture', + '#tfc:bowls' + ]).keepIngredient('#tfc:bowls').id(`tfg:shapeless/${grain}_dough_2`) + event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`8x firmalife:food/${grain}_dough`).copyFood(), [ - 'firmalife:spoon', + 'firmalife:spoon', TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), - '2x firmalife:tirage_mixture', + '2x firmalife:tirage_mixture', 'firmalife:mixing_bowl' - ]).id(`tfg:shapeless/${grain}_dough_2`) + ]).id(`tfg:shapeless/${grain}_dough_mixing_2`) + + event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`6x firmalife:food/${grain}_dough`).copyFood(), [ + 'firmalife:spoon', + TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), + TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), + TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), + '3x firmalife:tirage_mixture', + '#tfc:bowls' + ]).keepIngredient('#tfc:bowls').id(`tfg:shapeless/${grain}_dough_3`) event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`12x firmalife:food/${grain}_dough`).copyFood(), [ 'firmalife:spoon', TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), - '3x firmalife:tirage_mixture', + '3x firmalife:tirage_mixture', 'firmalife:mixing_bowl' - ]).id(`tfg:shapeless/${grain}_dough_3`) + ]).id(`tfg:shapeless/${grain}_dough_3_mixing`) + event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`2x tfc:food/${grain}_dough`).copyFood(), [ 'firmalife:spoon', TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), - TFC.ingredient.fluid(TFC.fluidStackIngredient('minecraft:water', 100)), - 'firmalife:mixing_bowl' - ]).id(`tfg:shapeless/${grain}_flatbread_dough`) + TFC.ingredient.fluid(TFC.fluidStackIngredient('minecraft:water', 100)), + '#tfc:bowls' + ]).keepIngredient('#tfc:bowls').id(`tfg:shapeless/${grain}_flatbread_dough`) - event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`4x tfc:food/${grain}_dough`).copyFood(), [ + event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`4x tfc:food/${grain}_dough`).copyFood(), [ 'firmalife:spoon', - TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), - TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), - TFC.ingredient.fluid(TFC.fluidStackIngredient('minecraft:water', 200)), + TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), + TFC.ingredient.fluid(TFC.fluidStackIngredient('minecraft:water', 100)), 'firmalife:mixing_bowl' - ]).id(`tfg:shapeless/${grain}_flatbread_dough_2`) + ]).id(`tfg:shapeless/${grain}_flatbread_dough_mixing`) + + event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`4x tfc:food/${grain}_dough`).copyFood(), [ + 'firmalife:spoon', + TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), + TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), + TFC.ingredient.fluid(TFC.fluidStackIngredient('minecraft:water', 200)), + '#tfc:bowls' + ]).keepIngredient('#tfc:bowls').id(`tfg:shapeless/${grain}_flatbread_dough_2`) + + event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`8x tfc:food/${grain}_dough`).copyFood(), [ + 'firmalife:spoon', + TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), + TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), + TFC.ingredient.fluid(TFC.fluidStackIngredient('minecraft:water', 200)), + 'firmalife:mixing_bowl' + ]).id(`tfg:shapeless/${grain}_flatbread_dough_2_mixing`) event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`6x tfc:food/${grain}_dough`).copyFood(), [ - 'firmalife:spoon', + 'firmalife:spoon', + TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), + TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), + TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), + TFC.ingredient.fluid(TFC.fluidStackIngredient('minecraft:water', 300)), + '#tfc:bowls' + ]).keepIngredient('#tfc:bowls').id(`tfg:shapeless/${grain}_flatbread_dough_3`) + + event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`12x tfc:food/${grain}_dough`).copyFood(), [ + 'firmalife:spoon', TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), TFC.ingredient.fluid(TFC.fluidStackIngredient('minecraft:water', 300)), 'firmalife:mixing_bowl' - ]).id(`tfg:shapeless/${grain}_flatbread_dough_3`) + ]).id(`tfg:shapeless/${grain}_flatbread_dough_3_mixing`) event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`8x tfc:food/${grain}_dough`).copyFood(), [ - 'firmalife:spoon', + 'firmalife:spoon', + TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), + TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), + TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), + TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), + TFC.ingredient.fluid(TFC.fluidStackIngredient('minecraft:water', 400)), + '#tfc:bowls' + ]).keepIngredient('#tfc:bowls').id(`tfg:shapeless/${grain}_flatbread_dough_4`) + + event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`16x tfc:food/${grain}_dough`).copyFood(), [ + 'firmalife:spoon', TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), TFC.ingredient.fluid(TFC.fluidStackIngredient('minecraft:water', 400)), 'firmalife:mixing_bowl' - ]).id(`tfg:shapeless/${grain}_flatbread_dough_4`) + ]).id(`tfg:shapeless/${grain}_flatbread_dough_4_mixing`) event.recipes.firmalife.mixing_bowl() .ingredients([ @@ -649,9 +701,19 @@ const registerFirmaLifeRecipes = (event) => { event.recipes.firmalife.mixing_bowl() .ingredients([ - TFC.ingredient.notRotten(`tfc:food/${grain}_flour`)], + TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), + TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), + `#tfc:sweetener`, + `#tfc:sweetener`], + Fluid.of('firmalife:yeast_starter', 400)) + .outputItem(`8x firmalife:food/${grain}_dough`) + .id(`tfg:mixing_bowl/${grain}_dough_2`) + + event.recipes.firmalife.mixing_bowl() + .ingredients([ + TFC.ingredient.notRotten(`tfc:food/${grain}_flour`)], Fluid.of('minecraft:water', 100)) - .outputItem(`2x tfc:food/${grain}_dough`) + .outputItem(`4x tfc:food/${grain}_dough`) .id(`tfg:mixing_bowl/${grain}_flatbread_dough`) event.recipes.firmalife.mixing_bowl() @@ -659,30 +721,60 @@ const registerFirmaLifeRecipes = (event) => { TFC.ingredient.notRotten(`tfc:food/${grain}_flour`), TFC.ingredient.notRotten(`tfc:food/${grain}_flour`)], Fluid.of('minecraft:water', 200)) - .outputItem(`4x tfc:food/${grain}_dough`) + .outputItem(`8x tfc:food/${grain}_dough`) .id(`tfg:mixing_bowl/${grain}_flatbread_dough_2`) }) + event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`2x firmalife:food/hardtack_dough`).copyFood(), [ + 'firmalife:spoon', + TFC.ingredient.notRotten(`#tfc:foods/flour`), + 'tfc:powder/salt', + TFC.ingredient.fluid(TFC.fluidStackIngredient('minecraft:water', 100)), + '#tfc:bowls' + ]).keepIngredient('#tfc:bowls').id(`tfg:shapeless/hardtack_dough`) + event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`4x firmalife:food/hardtack_dough`).copyFood(), [ - 'firmalife:spoon', + 'firmalife:spoon', TFC.ingredient.notRotten(`#tfc:foods/flour`), 'tfc:powder/salt', TFC.ingredient.fluid(TFC.fluidStackIngredient('minecraft:water', 100)), 'firmalife:mixing_bowl' - ]).id(`tfg:shapeless/hardtack_dough`) + ]).id(`tfg:shapeless/hardtack_dough_mixing`) + + event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`4x firmalife:food/hardtack_dough`).copyFood(), [ + 'firmalife:spoon', + TFC.ingredient.notRotten(`#tfc:foods/flour`), + TFC.ingredient.notRotten(`#tfc:foods/flour`), + 'tfc:powder/salt', + 'tfc:powder/salt', + TFC.ingredient.fluid(TFC.fluidStackIngredient('minecraft:water', 200)), + '#tfc:bowls' + ]).keepIngredient('#tfc:bowls').id(`tfg:shapeless/hardtack_dough_2`) event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`8x firmalife:food/hardtack_dough`).copyFood(), [ - 'firmalife:spoon', + 'firmalife:spoon', TFC.ingredient.notRotten(`#tfc:foods/flour`), TFC.ingredient.notRotten(`#tfc:foods/flour`), 'tfc:powder/salt', 'tfc:powder/salt', TFC.ingredient.fluid(TFC.fluidStackIngredient('minecraft:water', 200)), 'firmalife:mixing_bowl' - ]).id(`tfg:shapeless/hardtack_dough_2`) + ]).id(`tfg:shapeless/hardtack_dough_2_mixing`) + + event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`6x firmalife:food/hardtack_dough`).copyFood(), [ + 'firmalife:spoon', + TFC.ingredient.notRotten(`#tfc:foods/flour`), + TFC.ingredient.notRotten(`#tfc:foods/flour`), + TFC.ingredient.notRotten(`#tfc:foods/flour`), + 'tfc:powder/salt', + 'tfc:powder/salt', + 'tfc:powder/salt', + TFC.ingredient.fluid(TFC.fluidStackIngredient('minecraft:water', 300)), + '#tfc:bowls' + ]).keepIngredient('#tfc:bowls').id(`tfg:shapeless/hardtack_dough_3`) event.recipes.tfc.advanced_shapeless_crafting(TFC.isp.of(`12x firmalife:food/hardtack_dough`).copyFood(), [ - 'firmalife:spoon', + 'firmalife:spoon', TFC.ingredient.notRotten(`#tfc:foods/flour`), TFC.ingredient.notRotten(`#tfc:foods/flour`), TFC.ingredient.notRotten(`#tfc:foods/flour`), @@ -691,7 +783,7 @@ const registerFirmaLifeRecipes = (event) => { 'tfc:powder/salt', TFC.ingredient.fluid(TFC.fluidStackIngredient('minecraft:water', 300)), 'firmalife:mixing_bowl' - ]).id(`tfg:shapeless/hardtack_dough_3`) + ]).id(`tfg:shapeless/hardtack_dough_3_mixing`) event.recipes.firmalife.mixing_bowl() .itemIngredients([ @@ -777,25 +869,25 @@ const registerFirmaLifeRecipes = (event) => { // Chocolate Melting const setChocolateHeating = (variant) => { - const itemID = `firmalife:food/${variant}_chocolate` - const fluidID = `tfcchannelcasting:${variant}_chocolate` - const recipeID = `firmalife:heating/${variant}_chocolate` - const castingRecipeID = `tfcchannelcasting:casting/${variant}_chocolate` + const itemID = `firmalife:food/${variant}_chocolate` + const fluidID = `tfcchannelcasting:${variant}_chocolate` + const recipeID = `firmalife:heating/${variant}_chocolate` + const castingRecipeID = `tfcchannelcasting:casting/${variant}_chocolate` - event.remove({ id: recipeID }) - event.remove({ id: castingRecipeID }) - event.remove({ id: `${castingRecipeID}_fire_ingot` }) - event.remove({ id: `tfcchannelcasting:heating/food/${variant}_chocolate` }) + event.remove({ id: recipeID }) + event.remove({ id: castingRecipeID }) + event.remove({ id: `${castingRecipeID}_fire_ingot` }) + event.remove({ id: `tfcchannelcasting:heating/food/${variant}_chocolate` }) - event.recipes.tfc.heating(itemID, 200) - .resultFluid(Fluid.of(fluidID, 144)) - .id(recipeID) + event.recipes.tfc.heating(itemID, 200) + .resultFluid(Fluid.of(fluidID, 144)) + .id(recipeID) - event.recipes.tfc.casting(`${itemID}`, 'tfc:ceramic/ingot_mold', TFC.fluidStackIngredient(`${fluidID}`, 144), 0) - event.recipes.tfc.casting(`${itemID}`, 'tfc:ceramic/fire_ingot_mold', TFC.fluidStackIngredient(`${fluidID}`, 144), 0) + event.recipes.tfc.casting(`${itemID}`, 'tfc:ceramic/ingot_mold', TFC.fluidStackIngredient(`${fluidID}`, 144), 0) + event.recipes.tfc.casting(`${itemID}`, 'tfc:ceramic/fire_ingot_mold', TFC.fluidStackIngredient(`${fluidID}`, 144), 0) } setChocolateHeating('white') setChocolateHeating('milk') - setChocolateHeating('dark') + setChocolateHeating('dark') }