* refactor * phew * drive-by fix * all done I think * cleaned up some lines that didn't do anything, added more comments, removed log spam
882 lines
31 KiB
JavaScript
882 lines
31 KiB
JavaScript
// priority: 0
|
|
"use strict";
|
|
|
|
/**
|
|
* @param {Internal.RecipesEventJS} event
|
|
*/
|
|
const registerFirmaLifeRecipes = (event) => {
|
|
|
|
global.FIRMALIFE_DISABLED_ITEMS.forEach(item => {
|
|
event.remove({ input: item })
|
|
event.remove({ output: item })
|
|
})
|
|
|
|
// - Chromium
|
|
|
|
// Ores
|
|
event.remove({ id: 'firmalife:heating/ore/small_chromite' })
|
|
event.remove({ id: 'firmalife:heating/ore/poor_chromite' })
|
|
event.remove({ id: 'firmalife:heating/ore/normal_chromite' })
|
|
event.remove({ id: 'firmalife:heating/ore/rich_chromite' })
|
|
|
|
// Plated blocks
|
|
event.remove({ id: 'firmalife:crafting/crafting/metal/block/chromium' })
|
|
event.remove({ id: 'firmalife:crafting/metal/block/chromium_slab' })
|
|
event.remove({ id: 'firmalife:crafting/metal/block/chromium_stairs' })
|
|
event.remove({ id: 'firmalife:heating/metal/chromium_block' })
|
|
event.remove({ id: 'firmalife:heating/metal/chromium_block_slab' })
|
|
event.remove({ id: 'firmalife:heating/metal/chromium_block_stairs' })
|
|
|
|
// - Stainless Steel
|
|
event.remove({ id: 'firmalife:alloy/stainless_steel' })
|
|
|
|
// Jar lid
|
|
event.remove({ id: 'firmalife:heating/stainless_steel_jar_lid' })
|
|
|
|
// Default Sugar Water
|
|
event.remove({ id: 'firmalife:vat/sugar_water' })
|
|
|
|
// Plated Blocks
|
|
event.remove({ id: 'firmalife:crafting/crafting/metal/block/stainless_steel' })
|
|
event.remove({ id: 'firmalife:crafting/metal/block/stainless_steel_slab' })
|
|
event.remove({ id: 'firmalife:crafting/metal/block/stainless_steel_stairs' })
|
|
event.remove({ id: 'firmalife:heating/metal/stainless_steel_block' })
|
|
event.remove({ id: 'firmalife:heating/metal/stainless_steel_block_slab' })
|
|
event.remove({ id: 'firmalife:heating/metal/stainless_steel_block_stairs' })
|
|
|
|
event.remove({ id: /^firmalife:crafting\/.*_dough/ })
|
|
|
|
event.remove({ id: 'firmalife:pot/chocolate' })
|
|
|
|
//#endregion
|
|
|
|
event.shapeless('firmalife:barrel_stave', ['2x firmalife:treated_lumber', '#forge:screws/any_bronze', '#forge:tools/hammers'])
|
|
.id('firmalife:crafting/barrel_stave')
|
|
|
|
|
|
// Декрафт Jag Lid
|
|
event.recipes.tfc.heating('tfc:jar_lid', 230)
|
|
.resultFluid(Fluid.of('gtceu:tin', 6))
|
|
.id(`tfc:heating/jar_lid`)
|
|
|
|
// Pie Pan
|
|
event.recipes.tfc.anvil('4x firmalife:pie_pan', '#forge:plates/wrought_iron', ["hit_last", "hit_second_last", "draw_third_last"])
|
|
.tier(3)
|
|
.id('firmalife:anvil/pie_pan')
|
|
|
|
// Jarring Station
|
|
event.shaped('firmalife:jarring_station', [
|
|
'A A',
|
|
'BBB'
|
|
], {
|
|
A: '#forge:plates/wrought_iron',
|
|
B: 'firmalife:treated_lumber'
|
|
}).id('firmalife:crafting/jarring_station')
|
|
|
|
// Vat
|
|
event.recipes.gtceu.shaped('firmalife:vat', [
|
|
'A A',
|
|
'BAB'
|
|
], {
|
|
A: '#forge:plates/wrought_iron',
|
|
B: '#forge:wax'
|
|
}).addMaterialInfo().id('firmalife:crafting/vat')
|
|
|
|
// Jar Lid
|
|
event.recipes.gtceu.fluid_solidifier(`tfg:firmalife/jar_lid`)
|
|
.inputFluids(Fluid.of('gtceu:tin', 6))
|
|
.notConsumable('gtceu:cylinder_casting_mold')
|
|
.itemOutputs('tfc:jar_lid')
|
|
.duration(50)
|
|
.EUt(7)
|
|
|
|
event.recipes.gtceu.alloy_smelter('tfg:firmalife/jar_lid')
|
|
.itemInputs('1x #forge:ingots/tin')
|
|
.notConsumable('gtceu:cylinder_casting_mold')
|
|
.itemOutputs('24x tfc:jar_lid')
|
|
.duration(75)
|
|
.category(GTRecipeCategories.INGOT_MOLDING)
|
|
.EUt(4)
|
|
.addMaterialInfo(true)
|
|
|
|
event.recipes.gtceu.extractor('tfc:jar_lid_extraction')
|
|
.itemInputs('tfc:jar_lid')
|
|
.outputFluids(Fluid.of('gtceu:tin', 6))
|
|
.duration(50)
|
|
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
|
|
.EUt(2)
|
|
|
|
event.recipes.gtceu.fluid_solidifier(`firmalife:firmalife/stainless_steel_jar_lid`)
|
|
.inputFluids(Fluid.of('gtceu:stainless_steel', 3))
|
|
.notConsumable('gtceu:cylinder_casting_mold')
|
|
.itemOutputs('firmalife:stainless_steel_jar_lid')
|
|
.duration(50)
|
|
.EUt(7)
|
|
|
|
event.recipes.gtceu.alloy_smelter('tfg:firmalife/stainless_steel_jar_lid')
|
|
.itemInputs('1x #forge:ingots/stainless_steel')
|
|
.notConsumable('gtceu:cylinder_casting_mold')
|
|
.itemOutputs('48x firmalife:stainless_steel_jar_lid')
|
|
.duration(75)
|
|
.category(GTRecipeCategories.INGOT_MOLDING)
|
|
.EUt(4)
|
|
.addMaterialInfo(true)
|
|
|
|
event.recipes.gtceu.extractor('firmalife:stainless_steel_jar_extraction')
|
|
.itemInputs('firmalife:stainless_steel_jar_lid')
|
|
.outputFluids(Fluid.of('gtceu:stainless_steel', 3))
|
|
.duration(50)
|
|
.EUt(2)
|
|
|
|
// Pineapple Yarn
|
|
event.recipes.gtceu.wiremill(`tfg:firmalife/pineapple_yarn`)
|
|
.itemInputs('firmalife:pineapple_fiber')
|
|
.circuit(1)
|
|
.itemOutputs('8x firmalife:pineapple_yarn')
|
|
.duration(50)
|
|
.EUt(7)
|
|
|
|
// Pineapple Leather
|
|
event.recipes.gtceu.assembler(`tfg:firmalife/pineapple_leather`)
|
|
.itemInputs('16x firmalife:pineapple_yarn')
|
|
.circuit(1)
|
|
.itemOutputs('firmalife:pineapple_leather')
|
|
.duration(50)
|
|
.EUt(7)
|
|
|
|
//#region Wine Working
|
|
|
|
event.recipes.gtceu.alloy_smelter('firmalife:empty_olivine_wine_bottle')
|
|
.itemInputs('tfc:olivine_glass_batch')
|
|
.notConsumable('gtceu:cylinder_casting_mold')
|
|
.itemOutputs('firmalife:empty_olivine_wine_bottle')
|
|
.duration(100)
|
|
.EUt(GTValues.VA[GTValues.ULV])
|
|
.category(GTRecipeCategories.INGOT_MOLDING)
|
|
|
|
event.recipes.gtceu.alloy_smelter('firmalife:empty_volcanic_wine_bottle')
|
|
.itemInputs('tfc:volcanic_glass_batch')
|
|
.notConsumable('gtceu:cylinder_casting_mold')
|
|
.itemOutputs('firmalife:empty_volcanic_wine_bottle')
|
|
.duration(100)
|
|
.EUt(GTValues.VA[GTValues.ULV])
|
|
.category(GTRecipeCategories.INGOT_MOLDING)
|
|
|
|
event.recipes.gtceu.alloy_smelter('firmalife:empty_hematitic_wine_bottle')
|
|
.itemInputs('tfc:hematitic_glass_batch')
|
|
.notConsumable('gtceu:cylinder_casting_mold')
|
|
.itemOutputs('firmalife:empty_hematitic_wine_bottle')
|
|
.duration(100)
|
|
.EUt(GTValues.VA[GTValues.ULV])
|
|
.category(GTRecipeCategories.INGOT_MOLDING)
|
|
|
|
event.recipes.gtceu.alloy_smelter('firmalife:wine_glass')
|
|
.itemInputs('tfc:silica_glass_batch')
|
|
.notConsumable('gtceu:cylinder_casting_mold')
|
|
.itemOutputs('2x firmalife:wine_glass')
|
|
.duration(100)
|
|
.EUt(GTValues.VA[GTValues.ULV])
|
|
.category(GTRecipeCategories.INGOT_MOLDING)
|
|
|
|
event.recipes.gtceu.chemical_bath('firmalife:cork')
|
|
.itemInputs('firmalife:treated_lumber')
|
|
.inputFluids(Fluid.of('tfc:limewater', 1000))
|
|
.itemOutputs('8x firmalife:cork')
|
|
.duration(300)
|
|
.EUt(GTValues.VA[GTValues.ULV])
|
|
|
|
event.recipes.gtceu.assembler('firmalife:bottle_label')
|
|
.itemInputs('#forge:wax', 'minecraft:paper')
|
|
.itemOutputs('16x firmalife:bottle_label')
|
|
.duration(30)
|
|
.EUt(GTValues.VA[GTValues.ULV])
|
|
|
|
event.recipes.gtceu.alloy_smelter('pie_pan')
|
|
.itemInputs('#forge:ingots/wrought_iron')
|
|
.notConsumable('gtceu:cylinder_casting_mold')
|
|
.itemOutputs('6x firmalife:pie_pan')
|
|
.EUt(GTValues.VA[GTValues.ULV])
|
|
.duration(100)
|
|
.category(GTRecipeCategories.INGOT_MOLDING)
|
|
|
|
event.replaceInput({ id: 'firmalife:crafting/bottle_label' }, 'firmalife:beeswax', '#forge:wax')
|
|
|
|
//#endregion
|
|
|
|
//#region Рецепты теплиц / Greenhouse
|
|
|
|
event.recipes.gtceu.extruder('tfg:firmalife/sprinkler_electric_only')
|
|
.itemInputs('#forge:plates/copper')
|
|
.notConsumable('tfg:small_casing_extruder_mold')
|
|
.itemOutputs('firmalife:sprinkler')
|
|
.duration(60)
|
|
.EUt(8)
|
|
.addMaterialInfo(true)
|
|
|
|
/**
|
|
* @type {string[]} - Tier names of greenhouse casings.
|
|
*/
|
|
const greenhouse_tiers = [
|
|
{tier: 'treated_wood', material: 'firmalife:treated_lumber'},
|
|
{tier: 'copper', material: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Copper, 1)},
|
|
{tier: 'iron', material: ChemicalHelper.get(TagPrefix.rod, GTMaterials.WroughtIron, 1)},
|
|
{tier: 'stainless_steel', material: ChemicalHelper.get(TagPrefix.rod, GTMaterials.StainlessSteel, 1)}
|
|
];
|
|
|
|
//Firmalife namespace is left so we dont have to change patchouli entries.
|
|
greenhouse_tiers.forEach(tier => {
|
|
|
|
event.remove({ id: `firmalife:crafting/greenhouse/${tier.tier}_greenhouse_wall`})
|
|
event.recipes.gtceu.shaped(`16x firmalife:${tier.tier}_greenhouse_wall`, [
|
|
'ABA',
|
|
'BBB',
|
|
'ABA'
|
|
], {
|
|
A: tier.material,
|
|
B: 'firmalife:reinforced_glass'
|
|
}).addMaterialInfo().id(`firmalife:crafting/greenhouse/${tier.tier}_greenhouse_wall`)
|
|
|
|
event.remove({ id: `firmalife:crafting/greenhouse/${tier.tier}_greenhouse_panel_wall`})
|
|
event.recipes.gtceu.shaped(`16x firmalife:${tier.tier}_greenhouse_panel_wall`, [
|
|
'ABA',
|
|
'ABA',
|
|
'ABA'
|
|
], {
|
|
A: tier.material,
|
|
B: 'firmalife:reinforced_glass'
|
|
}).addMaterialInfo().id(`firmalife:crafting/greenhouse/${tier.tier}_greenhouse_panel_wall`)
|
|
|
|
event.remove({ id: `firmalife:crafting/greenhouse/${tier.tier}_greenhouse_panel_roof`})
|
|
event.recipes.gtceu.shaped(`8x firmalife:${tier.tier}_greenhouse_panel_roof`, [
|
|
'A ',
|
|
'BA ',
|
|
'BBA'
|
|
], {
|
|
A: 'firmalife:reinforced_glass',
|
|
B: tier.material
|
|
}).addMaterialInfo().id(`firmalife:crafting/greenhouse/${tier.tier}_greenhouse_panel_roof`)
|
|
|
|
event.remove({ id: `firmalife:crafting/greenhouse/${tier.tier}_greenhouse_roof`})
|
|
event.recipes.gtceu.shaped(`8x firmalife:${tier.tier}_greenhouse_roof`, [
|
|
'A ',
|
|
'BA ',
|
|
'BBA'
|
|
], {
|
|
A: tier.material,
|
|
B: 'firmalife:reinforced_glass'
|
|
}).addMaterialInfo().id(`firmalife:crafting/greenhouse/${tier.tier}_greenhouse_roof`)
|
|
|
|
event.remove({ id: `firmalife:crafting/greenhouse/${tier.tier}_greenhouse_roof_top`})
|
|
event.recipes.gtceu.shaped(`8x firmalife:${tier.tier}_greenhouse_roof_top`, [
|
|
'ABA',
|
|
'BAB'
|
|
], {
|
|
A: tier.material,
|
|
B: 'firmalife:reinforced_glass'
|
|
}).addMaterialInfo().id(`firmalife:crafting/greenhouse/${tier.tier}_greenhouse_roof_top`)
|
|
|
|
event.remove({ id: `firmalife:crafting/greenhouse/${tier.tier}_greenhouse_trapdoor`})
|
|
event.recipes.gtceu.shaped(`8x firmalife:${tier.tier}_greenhouse_trapdoor`, [
|
|
'ABA',
|
|
'BAB'
|
|
], {
|
|
A: 'firmalife:reinforced_glass',
|
|
B: tier.material
|
|
}).addMaterialInfo().id(`firmalife:crafting/greenhouse/${tier.tier}_greenhouse_trapdoor`)
|
|
|
|
event.remove({ id: `firmalife:crafting/greenhouse/${tier.tier}_greenhouse_door`})
|
|
event.recipes.gtceu.shaped(`2x firmalife:${tier.tier}_greenhouse_door`, [
|
|
'AB',
|
|
'AB',
|
|
'AB'
|
|
], {
|
|
A: tier.material,
|
|
B: 'firmalife:reinforced_glass'
|
|
}).addMaterialInfo().id(`firmalife:crafting/greenhouse/${tier.tier}_greenhouse_door`)
|
|
|
|
event.remove({ id: `firmalife:crafting/greenhouse/${tier.tier}_greenhouse_port`})
|
|
event.recipes.gtceu.shaped(`firmalife:${tier.tier}_greenhouse_port`, [
|
|
'AB'
|
|
], {
|
|
A: `#tfg:${tier.tier}_greenhouse_casings`,
|
|
B: ChemicalHelper.get(TagPrefix.pipeTinyFluid, GTMaterials.Copper, 1)
|
|
}).addMaterialInfo().id(`firmalife:crafting/greenhouse/${tier.tier}_greenhouse_port`)
|
|
});
|
|
|
|
event.recipes.gtceu.shaped('firmalife:sweeper', [
|
|
'ABD',
|
|
'CB '
|
|
], {
|
|
A: '#forge:saw_heads/steel',
|
|
B: '#forge:rods/steel',
|
|
C: 'vintageimprovements:redstone_module',
|
|
D: '#forge:tools/wrenches'
|
|
}).addMaterialInfo().id('firmalife:crafting/sweeper')
|
|
|
|
event.recipes.gtceu.shaped('firmalife:picker', [
|
|
'ABD',
|
|
'CC ',
|
|
'EE '
|
|
], {
|
|
A: '#forge:plates/steel',
|
|
B: 'vintageimprovements:redstone_module',
|
|
C: '#forge:rods/steel',
|
|
D: '#forge:tools/wrenches',
|
|
E: '#forge:hoe_heads/steel'
|
|
}).addMaterialInfo().id('firmalife:crafting/picker')
|
|
|
|
//#endregion
|
|
|
|
//#region Reinforced Glass
|
|
|
|
event.shaped('9x firmalife:reinforced_glass', [
|
|
'AB'
|
|
], {
|
|
A: '#tfc:saws',
|
|
B: 'gtceu:tempered_glass'
|
|
}).id('tfg:shaped/reinforced_glass');
|
|
|
|
generateCutterRecipe(event, '1x gtceu:tempered_glass', '9x firmalife:reinforced_glass', 100, 7, 'reinforced_glass');
|
|
|
|
event.recipes.gtceu.macerator('tfg:recycling/reinforced_glass')
|
|
.itemInputs('firmalife:reinforced_glass')
|
|
.itemOutputs(
|
|
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Glass, 1)
|
|
)
|
|
.duration(GTMaterials.Glass.getMass() * 1)
|
|
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
|
.EUt(GTValues.VA[GTValues.ULV]);
|
|
|
|
//#endregion
|
|
//#region Sticky Resin by Vat
|
|
|
|
event.recipes.firmalife.vat()
|
|
.inputs('tfc:powder/wood_ash', Fluid.of('tfg:latex', 1000))
|
|
.outputItem('gtceu:sticky_resin')
|
|
.id('tfg:vat/latex_to_sticky_resin');
|
|
|
|
event.recipes.firmalife.vat()
|
|
.inputs('tfc:powder/wood_ash', Fluid.of('tfg:conifer_pitch', 1000))
|
|
.outputItem('gtceu:sticky_resin')
|
|
.id('tfg:vat/conifer_pitch_to_sticky_resin');
|
|
|
|
//#endregion
|
|
|
|
//#region Better Sugar Water
|
|
event.recipes.firmalife.vat()
|
|
.inputs('#tfc:sweetener', Fluid.of('minecraft:water', 2000))
|
|
.outputFluid(Fluid.of('firmalife:sugar_water', 2000))
|
|
.id('tfg:vat/sugar_water')
|
|
|
|
//#endregion
|
|
|
|
//#region Salt by Vat
|
|
|
|
event.recipes.firmalife.vat()
|
|
//.inputs('minecraft:stick', Fluid.of('tfc:salt_water', 625))
|
|
.inputFluid(Fluid.of('tfc:salt_water', 625))
|
|
.outputItem('gtceu:small_salt_dust')
|
|
.id('tfg:vat/sea_water_to_salt');
|
|
|
|
//#endregion
|
|
|
|
//#region Replace existing dyes
|
|
|
|
global.MINECRAFT_DYE_NAMES.forEach(dyeName => {
|
|
|
|
event.recipes.firmalife.vat()
|
|
.inputs(`#forge:dyes/${dyeName}`, Fluid.of('tfc:vinegar', 250))
|
|
.outputFluid(Fluid.of(`tfc:${dyeName}_dye`, 144))
|
|
.length(100)
|
|
.temperature(200)
|
|
.id(`firmalife:vat/${dyeName}_dye`)
|
|
})
|
|
|
|
//#endregion
|
|
|
|
// #region Drying mat alternatives
|
|
|
|
event.shaped('firmalife:drying_mat', ['AAA'], { A: 'tfc:plant/leafy_kelp' }).id('tfg:shaped/drying_mat_leafy_kelp')
|
|
event.shaped('firmalife:drying_mat', ['AAA'], { A: 'tfc:plant/winged_kelp' }).id('tfg:shaped/drying_mat_winged_kelp')
|
|
event.shaped('firmalife:drying_mat', ['AAA'], { A: 'tfg:charnia' }).id('tfg:shaped/drying_mat_charnia')
|
|
|
|
// #endregion
|
|
|
|
event.recipes.gtceu.mixer('sugar_water')
|
|
.itemInputs('#tfc:sweetener')
|
|
.inputFluids("#tfg:clean_water 2000")
|
|
.outputFluids(Fluid.of('firmalife:sugar_water', 2000))
|
|
.circuit(5)
|
|
.EUt(GTValues.VA[GTValues.ULV])
|
|
.duration(200)
|
|
|
|
// Dough
|
|
|
|
global.TFC_GRAINS.forEach(grain => {
|
|
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',
|
|
'#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: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',
|
|
TFC.ingredient.notRotten(`tfc:food/${grain}_flour`),
|
|
TFC.ingredient.notRotten(`tfc:food/${grain}_flour`),
|
|
'2x firmalife:tirage_mixture',
|
|
'firmalife:mixing_bowl'
|
|
]).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',
|
|
'firmalife:mixing_bowl'
|
|
]).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)),
|
|
'#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(), [
|
|
'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_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',
|
|
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_mixing`)
|
|
|
|
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.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_mixing`)
|
|
|
|
event.recipes.firmalife.mixing_bowl()
|
|
.ingredients([
|
|
TFC.ingredient.notRotten(`tfc:food/${grain}_flour`),
|
|
`#tfc:sweetener`],
|
|
Fluid.of('firmalife:yeast_starter', 200))
|
|
.outputItem(`4x firmalife:food/${grain}_dough`)
|
|
.id(`tfg:mixing_bowl/${grain}_dough`)
|
|
|
|
event.recipes.firmalife.mixing_bowl()
|
|
.ingredients([
|
|
TFC.ingredient.notRotten(`tfc:food/${grain}_flour`)],
|
|
Fluid.of('minecraft:water', 100))
|
|
.outputItem(`4x tfc:food/${grain}_dough`)
|
|
.id(`tfg:mixing_bowl/${grain}_flatbread_dough`)
|
|
})
|
|
|
|
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',
|
|
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_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',
|
|
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_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',
|
|
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)),
|
|
'firmalife:mixing_bowl'
|
|
]).id(`tfg:shapeless/hardtack_dough_3_mixing`)
|
|
|
|
event.recipes.firmalife.mixing_bowl()
|
|
.itemIngredients([
|
|
TFC.ingredient.notRotten('firmalife:food/vanilla_ice_cream'),
|
|
TFC.ingredient.notRotten('firmalife:food/chocolate_chip_cookie_dough')])
|
|
.outputItem('2x firmalife:food/cookie_dough_ice_cream')
|
|
.id('firmalife:mixing_bowl/cookie_dough_ice_cream')
|
|
|
|
event.recipes.firmalife.mixing_bowl()
|
|
.ingredients([
|
|
TFC.ingredient.notRotten('#forge:eggs'),
|
|
'#tfg:sugars',
|
|
'#tfg:sugars',
|
|
TFC.ingredient.notRotten('#tfc:foods/flour'),
|
|
TFC.ingredient.notRotten('#tfc:foods/flour')],
|
|
TFC.fluidStackIngredient('#tfc:milks', 1000))
|
|
.outputItem('createaddition:cake_base')
|
|
.id('tfg:mixing_bowl/cake_base')
|
|
|
|
event.recipes.firmalife.oven('createaddition:cake_base', 400, 60 * 20, 'createaddition:cake_base_baked')
|
|
|
|
event.recipes.firmalife.mixing_bowl()
|
|
.ingredients([
|
|
TFC.ingredient.notRotten('createaddition:cake_base_baked'),
|
|
TFC.ingredient.notRotten('tfc:food/strawberry'),
|
|
TFC.ingredient.notRotten('tfc:food/strawberry'),
|
|
TFC.ingredient.notRotten('tfc:food/strawberry'),
|
|
'firmalife:spice/vanilla'],
|
|
Fluid.of('tfcchannelcasting:white_chocolate', 400))
|
|
.outputItem('tfc:cake')
|
|
.id('tfg:mixing_bowl/cake')
|
|
|
|
event.recipes.firmalife.mixing_bowl()
|
|
.ingredients([
|
|
TFC.ingredient.notRotten('createaddition:cake_base_baked'),
|
|
TFC.ingredient.notRotten('tfc:food/cherry'),
|
|
TFC.ingredient.notRotten('tfc:food/cherry'),
|
|
TFC.ingredient.notRotten('tfc:food/cherry'),
|
|
'firmalife:food/cocoa_powder'],
|
|
Fluid.of('tfcchannelcasting:milk_chocolate', 400))
|
|
.outputItem('createaddition:chocolate_cake')
|
|
.id('tfg:mixing_bowl/milk_chocolate_cake')
|
|
|
|
event.recipes.firmalife.mixing_bowl()
|
|
.ingredients([
|
|
TFC.ingredient.notRotten('createaddition:cake_base_baked'),
|
|
TFC.ingredient.notRotten('tfc:food/cherry'),
|
|
TFC.ingredient.notRotten('tfc:food/cherry'),
|
|
TFC.ingredient.notRotten('tfc:food/cherry'),
|
|
'firmalife:food/cocoa_powder'],
|
|
Fluid.of('tfcchannelcasting:dark_chocolate', 400))
|
|
.outputItem('createaddition:chocolate_cake')
|
|
.id('tfg:mixing_bowl/dark_chocolate_cake')
|
|
|
|
event.recipes.firmalife.mixing_bowl()
|
|
.ingredients([
|
|
TFC.ingredient.notRotten('createaddition:cake_base_baked'),
|
|
'firmalife:raw_honey',
|
|
'firmalife:raw_honey',
|
|
'firmalife:raw_honey',
|
|
'firmalife:raw_honey'],
|
|
Fluid.of('afc:maple_syrup', 1000))
|
|
.outputItem('createaddition:honey_cake')
|
|
.id('tfg:mixing_bowl/maple_honey_cake')
|
|
|
|
event.recipes.firmalife.mixing_bowl()
|
|
.ingredients([
|
|
TFC.ingredient.notRotten('createaddition:cake_base_baked'),
|
|
'firmalife:raw_honey',
|
|
'firmalife:raw_honey',
|
|
'firmalife:raw_honey',
|
|
'firmalife:raw_honey'],
|
|
Fluid.of('afc:birch_syrup', 1000))
|
|
.outputItem('createaddition:honey_cake')
|
|
.id('tfg:mixing_bowl/birch_honey_cake')
|
|
|
|
event.remove({ id: 'firmalife:mixing_bowl/chocolate_ice_cream' })
|
|
event.recipes.firmalife.mixing_bowl()
|
|
.ingredients([TFC.ingredient.notRotten('firmalife:food/vanilla_ice_cream')],
|
|
Fluid.of('tfcchannelcasting:milk_chocolate', 100))
|
|
.outputItem(TFC.isp.of('firmalife:food/chocolate_ice_cream').copyFood())
|
|
.id('tfg:mixing_bowl/chocolate_ice_cream')
|
|
|
|
// 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`
|
|
|
|
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.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')
|
|
|
|
//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.recipes.tfc.advanced_shapeless_crafting(
|
|
TFC.itemStackProvider.of('2x firmalife:food/oat_slice').copyFood(),
|
|
[TFC.ingredient.notRotten('tfc:food/oat_bread'), '#forge:tools/knives'], 'tfc:food/oat_bread')
|
|
.id(`tfg:crafting/oat_slice`)
|
|
event.recipes.tfc.advanced_shapeless_crafting(
|
|
TFC.itemStackProvider.of('2x firmalife:food/wheat_slice').copyFood(),
|
|
[TFC.ingredient.notRotten('tfc:food/wheat_bread'), '#forge:tools/knives'], 'tfc:food/wheat_bread')
|
|
.id(`tfg:crafting/wheat_slice`)
|
|
event.recipes.tfc.advanced_shapeless_crafting(
|
|
TFC.itemStackProvider.of('2x firmalife:food/barley_slice').copyFood(),
|
|
[TFC.ingredient.notRotten('tfc:food/barley_bread'), '#forge:tools/knives'], 'tfc:food/barley_bread')
|
|
.id(`tfg:crafting/barley_slice`)
|
|
event.recipes.tfc.advanced_shapeless_crafting(
|
|
TFC.itemStackProvider.of('2x firmalife:food/maize_slice').copyFood(),
|
|
[TFC.ingredient.notRotten('tfc:food/maize_bread'), '#forge:tools/knives'], 'tfc:food/maize_bread')
|
|
.id(`tfg:crafting/maize_slice`)
|
|
event.recipes.tfc.advanced_shapeless_crafting(
|
|
TFC.itemStackProvider.of('2x firmalife:food/rice_slice').copyFood(),
|
|
[TFC.ingredient.notRotten('tfc:food/rice_bread'), '#forge:tools/knives'], 'tfc:food/rice_bread')
|
|
.id(`tfg:crafting/rice_slice`)
|
|
event.recipes.tfc.advanced_shapeless_crafting(
|
|
TFC.itemStackProvider.of('2x firmalife:food/rye_slice').copyFood(),
|
|
[TFC.ingredient.notRotten('tfc:food/rye_bread'), '#forge:tools/knives'], 'tfc:food/rye_bread')
|
|
.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.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')
|
|
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')
|
|
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')
|
|
|
|
// #region Oven heating recipes
|
|
|
|
event.recipes.tfc.heating(`firmalife:oven_top`, 1399)
|
|
.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`)
|
|
event.recipes.tfc.heating(`firmalife:oven_bottom`, 1399)
|
|
.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`)
|
|
|
|
// #endregion
|
|
|
|
// Adds a tooltip to the bacon craft to tell people it needs to be smoked first,
|
|
// and adds traits that normally disappear on the craft
|
|
|
|
event.recipes.tfc.advanced_shapeless_crafting(
|
|
TFC.isp.of(Item.of('4x firmalife:food/bacon')
|
|
.withName(Text.translate('tfg.emi.bacon_requirement')))
|
|
.addTrait("firmalife:smoked")
|
|
.addTrait("tfc:brined")
|
|
.addTrait("tfc:salted"),
|
|
[
|
|
TFC.ingredient.notRotten(TFC.ingredient.hasTrait('tfc:food/pork', "firmalife:smoked")),
|
|
'#forge:tools/knives',
|
|
'tfc:powder/salt'
|
|
])
|
|
.modifyResult((craftingGrid, result) => {
|
|
result.resetHoverName();
|
|
return result;
|
|
})
|
|
.id('firmalife:crafting/bacon')
|
|
|
|
// Replacement for yeast starter recipe that uses a different, more descriptive tag
|
|
|
|
event.recipes.tfc.barrel_sealed(72000)
|
|
.inputFluid(Fluid.of('minecraft:water', 100))
|
|
.inputItem(TFC.ingredient.hasTrait('#tfg:dried_fruit', "firmalife:dried"))
|
|
.outputFluid(Fluid.of('firmalife:yeast_starter', 100))
|
|
.id('firmalife:barrel/yeast_starter')
|
|
}
|