From c3eb6a40583841a9a80e5cb62463ceebcbe3d2c6 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Thu, 1 Jan 2026 15:40:36 +0000 Subject: [PATCH] a workaround for bacon and dried fruit questions --- kubejs/assets/tfg/lang/en_us.json | 2 + kubejs/server_scripts/firmalife/recipes.js | 215 +++++++++++---------- kubejs/server_scripts/firmalife/tags.js | 8 + 3 files changed, 128 insertions(+), 97 deletions(-) diff --git a/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index e86e841c7..ef111dc2e 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -1643,6 +1643,8 @@ "tfg.gui.consumes": "Consumes: ", "tfg.gui.per_cycle": "per cycle", "tfg.gui.cycle_duration": "Cycle duration: ", + "tfg.emi.bacon_requirement": "Bacon - The Raw Pork must be smoked first", + "tag.item.tfg.dried_fruit": "Dried Fruit", "tfc.jei.flint_knapping": "Flint Knapping", "tfc.jei.straw_knapping": "Straw Knapping", "tfc.recipe.barrel.tfg.barrel.dyeing.decorative_vase.black": "Dyeing", diff --git a/kubejs/server_scripts/firmalife/recipes.js b/kubejs/server_scripts/firmalife/recipes.js index a17c366ec..8d0592e21 100644 --- a/kubejs/server_scripts/firmalife/recipes.js +++ b/kubejs/server_scripts/firmalife/recipes.js @@ -879,12 +879,12 @@ const registerFirmaLifeRecipes = (event) => { setChocolateHeating('dark') //fixing the bread unrotting - event.remove({ id: 'firmalife:crafting/oat_slice'}) - event.remove({ id: 'firmalife:crafting/wheat_slice'}) - event.remove({ id: 'firmalife:crafting/barley_slice'}) - event.remove({ id: 'firmalife:crafting/maize_slice'}) - event.remove({ id: 'firmalife:crafting/rice_slice'}) - event.remove({ id: 'firmalife:crafting/rye_slice'}) + event.remove({ id: 'firmalife:crafting/oat_slice' }) + event.remove({ id: 'firmalife:crafting/wheat_slice' }) + event.remove({ id: 'firmalife:crafting/barley_slice' }) + event.remove({ id: 'firmalife:crafting/maize_slice' }) + event.remove({ id: 'firmalife:crafting/rice_slice' }) + event.remove({ id: 'firmalife:crafting/rye_slice' }) event.recipes.tfc.advanced_shapeless_crafting( TFC.itemStackProvider.of('2x firmalife:food/oat_slice').copyFood(), @@ -912,109 +912,130 @@ const registerFirmaLifeRecipes = (event) => { .id(`tfg:crafting/rye_slice`) //fixing the cheese curd unrotting - event.remove({ id: 'firmalife:crafting/cheddar_wheel'}) - event.remove({ id: 'firmalife:crafting/chevre_wheel'}) - event.remove({ id: 'firmalife:crafting/rajya_metok_wheel'}) - event.remove({ id: 'firmalife:barrel/gouda'}) - event.remove({ id: 'firmalife:barrel/feta'}) - event.remove({ id: 'firmalife:barrel/shosha'}) + event.remove({ id: 'firmalife:crafting/cheddar_wheel' }) + event.remove({ id: 'firmalife:crafting/chevre_wheel' }) + event.remove({ id: 'firmalife:crafting/rajya_metok_wheel' }) + event.remove({ id: 'firmalife:barrel/gouda' }) + event.remove({ id: 'firmalife:barrel/feta' }) + event.remove({ id: 'firmalife:barrel/shosha' }) event.recipes.tfc.advanced_shaped_crafting( TFC.itemStackProvider.of('firmalife:cheddar_wheel').copyFood(), [ - 'AAA', - 'BBB', - 'AAA' - ], { - A: 'tfc:powder/salt', - B: TFC.ingredient.notRotten('firmalife:food/milk_curd') - }, 0, 0).id('tfg:crafting/cheddar_wheel') + 'AAA', + 'BBB', + 'AAA' + ], { + A: 'tfc:powder/salt', + B: TFC.ingredient.notRotten('firmalife:food/milk_curd') + }, 0, 0).id('tfg:crafting/cheddar_wheel') event.recipes.tfc.advanced_shaped_crafting( TFC.itemStackProvider.of('firmalife:chevre_wheel').copyFood(), [ - 'AAA', - 'BBB', - 'AAA' - ], { - A: 'tfc:powder/salt', - B: TFC.ingredient.notRotten('firmalife:food/goat_curd') - }, 0, 0).id('tfg:crafting/chevre_wheel') + 'AAA', + 'BBB', + 'AAA' + ], { + A: 'tfc:powder/salt', + B: TFC.ingredient.notRotten('firmalife:food/goat_curd') + }, 0, 0).id('tfg:crafting/chevre_wheel') event.recipes.tfc.advanced_shaped_crafting( TFC.itemStackProvider.of('firmalife:rajya_metok_wheel').copyFood(), [ - 'AAA', - 'BBB', - 'AAA' - ], { - A: 'tfc:powder/salt', - B: TFC.ingredient.notRotten('firmalife:food/yak_curd') - }, 0, 0).id('tfg:crafting/rajya_metok_wheel') - event.custom({ - "type": "tfc:barrel_sealed", - "input_item": { - "count": 3, - "ingredient": { - "type": "tfc:not_rotten", - "ingredient": { "item": "firmalife:food/milk_curd" } - } - }, - "input_fluid": { - "ingredient": "tfc:salt_water", - "amount": 750 - }, - "output_item": { - "item": "firmalife:gouda_wheel" - }, - "duration": 16000 - }).id('tfg:barrel/gouda_wheel') - event.custom({ - "type": "tfc:barrel_sealed", - "input_item": { - "count": 3, - "ingredient": { - "type": "tfc:not_rotten", - "ingredient": { "item": "firmalife:food/goat_curd" } - } - }, - "input_fluid": { - "ingredient": "tfc:salt_water", - "amount": 750 - }, - "output_item": { - "item": "firmalife:feta_wheel" - }, - "duration": 16000 - }).id('tfg:barrel/feta_wheel') - event.custom({ - "type": "tfc:barrel_sealed", - "input_item": { - "count": 3, - "ingredient": { - "type": "tfc:not_rotten", - "ingredient": { "item": "firmalife:food/yak_curd" } - } - }, - "input_fluid": { - "ingredient": "tfc:salt_water", - "amount": 750 - }, - "output_item": { - "item": "firmalife:shosha_wheel" - }, - "duration": 16000 - }).id('tfg:barrel/shosha_wheel') - + 'AAA', + 'BBB', + 'AAA' + ], { + A: 'tfc:powder/salt', + B: TFC.ingredient.notRotten('firmalife:food/yak_curd') + }, 0, 0).id('tfg:crafting/rajya_metok_wheel') + event.custom({ + "type": "tfc:barrel_sealed", + "input_item": { + "count": 3, + "ingredient": { + "type": "tfc:not_rotten", + "ingredient": { "item": "firmalife:food/milk_curd" } + } + }, + "input_fluid": { + "ingredient": "tfc:salt_water", + "amount": 750 + }, + "output_item": { + "item": "firmalife:gouda_wheel" + }, + "duration": 16000 + }).id('tfg:barrel/gouda_wheel') + event.custom({ + "type": "tfc:barrel_sealed", + "input_item": { + "count": 3, + "ingredient": { + "type": "tfc:not_rotten", + "ingredient": { "item": "firmalife:food/goat_curd" } + } + }, + "input_fluid": { + "ingredient": "tfc:salt_water", + "amount": 750 + }, + "output_item": { + "item": "firmalife:feta_wheel" + }, + "duration": 16000 + }).id('tfg:barrel/feta_wheel') + event.custom({ + "type": "tfc:barrel_sealed", + "input_item": { + "count": 3, + "ingredient": { + "type": "tfc:not_rotten", + "ingredient": { "item": "firmalife:food/yak_curd" } + } + }, + "input_fluid": { + "ingredient": "tfc:salt_water", + "amount": 750 + }, + "output_item": { + "item": "firmalife:shosha_wheel" + }, + "duration": 16000 + }).id('tfg:barrel/shosha_wheel') + // #region Oven heating recipes - + event.recipes.tfc.heating(`firmalife:oven_top`, 1399) - .resultItem(`firmalife:cured_oven_top`) - .id(`tfg:heating/oven_top`) + .resultItem(`firmalife:cured_oven_top`) + .id(`tfg:heating/oven_top`) event.recipes.tfc.heating(`firmalife:oven_chimney`, 1399) - .resultItem(`firmalife:cured_oven_chimney`) - .id(`tfg:heating/oven_chimney`) + .resultItem(`firmalife:cured_oven_chimney`) + .id(`tfg:heating/oven_chimney`) event.recipes.tfc.heating(`firmalife:oven_bottom`, 1399) - .resultItem(`firmalife:cured_oven_bottom`) - .id(`tfg:heating/oven_bottom`) + .resultItem(`firmalife:cured_oven_bottom`) + .id(`tfg:heating/oven_bottom`) event.recipes.tfc.heating(`firmalife:oven_hopper`, 1399) - .resultItem(`firmalife:cured_oven_hopper`) - .id(`tfg:heating/oven_hopper`) + .resultItem(`firmalife:cured_oven_hopper`) + .id(`tfg:heating/oven_hopper`) + + // #endregion + + // #region How do I make yeast starter??? + + event.recipes.kubejs.shapeless(Item.of('4x firmalife:food/bacon').withName(Text.translate('tfg.emi.bacon_requirement')), [ + 'tfc:food/pork', + '#forge:tools/knives', + 'tfc:powder/salt' + ]) + .modifyResult((craftingGrid, result) => { + result.resetHoverName(); + return result; + }) + .id('firmalife:crafting/bacon') + + event.recipes.tfc.barrel_sealed(72000) + .inputFluid(Fluid.of('minecraft:water', 100)) + .inputItem(TFC.ingredient.hasTrait(Ingredient.of('#tfg:dried_fruit'), "firmalife:dried")) + .outputFluid(Fluid.of('firmalife:yeast_starter', 100)) + .id('firmalife:barrel/yeast_starter') // #endregion } diff --git a/kubejs/server_scripts/firmalife/tags.js b/kubejs/server_scripts/firmalife/tags.js index e8746e3c1..0a66fefd9 100644 --- a/kubejs/server_scripts/firmalife/tags.js +++ b/kubejs/server_scripts/firmalife/tags.js @@ -16,6 +16,14 @@ const registerFirmaLifeItemTags = (event) => { // Удаление тегов у руд event.removeAllTagsFrom("/tfc:ore/[^*]+/[^*]+/") + + // Make our own "dried fruit" tag so we can display something in EMI - used for yeast starter + const fruitArray = Ingredient.of('#tfc:foods/fruits').itemIds.toArray().map(String) + fruitArray.forEach(fruit => { + if (fruit !== 'betterend:shadow_berry_cooked' && fruit !== 'minecraft:popped_chorus_fruit') { + event.add('tfg:dried_fruit', fruit) + } + }) } const registerFirmaLifeBlockTags = (event) => {