neuralgia/kubejs/server_scripts/gregtech/recipes.js
Pyritie e6c971f197
Release: 0.9.6 (#1020)
* - Fixed hide duping recipes.
- Added quest book and field guide instances for fishing nets.
- Fixed rebar support recipe crash.
- Fixed red steel flask dupe.
- Fixed red alloy recipe inconsistency.

* - Fixed blue steel backpack block lang

* - Added max vessel fluid warning to small vessels.

* - Moved red steel flask recipe

* Update pakku.json

* fixed vessel tooltips so they display on the uncolored vessel too

* fixed inconsistent small spring recipe with the coiling machine

* fixed chiseling non-tfc blocks into slabs was only returning 1 slab instead of both

* Field guide updates (#973)

* added detected-setblock-be-gone to pakku server

* added "requiresNaturalLog" config to afc tree tapping recipes so you can't tap your house

* fixed missing tooltips on AFC wooden supports

* added recipes for greenhouse ports, added recipes for stainless steel greenhouse (if you want to be fancy)

* quest fixes, lang strings

* added assembler recipes for most create things, made steam engines, blaze burners, and alternators cheaper, made firmaciv sails use any fabric

* langs

* removed gt compressed clay, fixed assembler recipe for clay bricks

* removed the leather armor recycling because it's basically infinite armor

* fixed iron door inconsistency

* hopper in assembler now has a circuit condition

* fixes #931

* Buff Large Boiler Fuel Efficiency (#977)

* bufflargeboilers

* formatting

* oh so THAT's why the recycling recipes weren't working...

* made the steam multiblock inputs/outputs significantly cheaper

* changed default flywheel setting back to instanced

* added assembler recipes for greate things

* updated changelog

* added recipes for the other millstones

* - Fixed fishing nets event function

* Update queststfc_tips.snbt

Signed-off-by: Redeix <59435925+Redeix@users.noreply.github.com>

* Update en_us.json

Signed-off-by: Redeix <59435925+Redeix@users.noreply.github.com>

* - Added item to summon armor stands with arms

* - Added recipes to empty vessels and molds

* - Added recipes for extracting/ forming magma blocks.

* - Added recipes for extracting/ forming magma blocks.

* - Nerfed steel support recipe output.

* Fixes and features (#987)

* - Fixed hide duping recipes.
- Added quest book and field guide instances for fishing nets.
- Fixed rebar support recipe crash.
- Fixed red steel flask dupe.
- Fixed red alloy recipe inconsistency.

* - Fixed blue steel backpack block lang

* - Added max vessel fluid warning to small vessels.

* - Moved red steel flask recipe

* - Fixed fishing nets event function

* Update queststfc_tips.snbt

Signed-off-by: Redeix <59435925+Redeix@users.noreply.github.com>

* Update en_us.json

Signed-off-by: Redeix <59435925+Redeix@users.noreply.github.com>

* - Added item to summon armor stands with arms

* - Added recipes to empty vessels and molds

* - Added recipes for extracting/ forming magma blocks.

* - Added recipes for extracting/ forming magma blocks.

* - Nerfed steel support recipe output.

---------

Signed-off-by: Redeix <59435925+Redeix@users.noreply.github.com>

* Add wrought iron alternatives for early game cast iron recipes (#985)

* Add wrought iron alternatives for early game cast iron recipes

* Change doulbe iron ingots tag to use #forge item tags

* salt water fast fix (#992)

no more circuits

Signed-off-by: SverhRazum-Nah <leon.trol@mail.ru>

* - Revert mold changes from #987

* Branch merge (#995)

* Some recipe changes (#1003)

* misc recipes

* add saw to jar lid recipe

* revert table salt name changing that didn't work

* fixed the basin having the wrong tag to be used with the charcoal forge

* removed obsidian framed pressure plate - idk what it even does, but it's causing crashes
fixes #1006

* Fix for Create Deco bricks conflict with Minecraft bricks in the assembler (#1005)

Signed-off-by: TomPlop <tomdidome@gmail.com>

* removing the gregtech material error suppression because it's just causing more confusion

* updated changelog

* Update CHANGELOG.md

* Update ENHANCEMENT.yml

* Update ENHANCEMENT.yml

* Update ENHANCEMENT.yml

* Update ENHANCEMENT.yml

* Update ENHANCEMENT.yml

* Update ENHANCEMENT.yml

* Update ENHANCEMENT.yml

* Update ENHANCEMENT.yml

* Update ENHANCEMENT.yml

* Update ENHANCEMENT.yml

* ISSUE_TEMPLATE

* tweaked Y levels of the overworld <-> beneath teleporting

* ISSUE_TEMPLATE

* github

* langs, quest tweaks, updated field guide for sprinklers

* put tin jar lid recycling in the right category

* hid the new space tfg blocks

* updated pakku

* I FORGOT TO ADD PUNISHMENT FOR DEATH

* aa

* Update mods

* CHANGELOG

---------

Signed-off-by: Redeix <59435925+Redeix@users.noreply.github.com>
Signed-off-by: SverhRazum-Nah <leon.trol@mail.ru>
Signed-off-by: TomPlop <tomdidome@gmail.com>
Co-authored-by: Redeix <brayden.j.m.ford@gmail.com>
Co-authored-by: Xikaro <os.valerievich@ya.ru>
Co-authored-by: Risuga <oosyrag@gmail.com>
Co-authored-by: Redeix <59435925+Redeix@users.noreply.github.com>
Co-authored-by: Zack <93035068+ZackH01@users.noreply.github.com>
Co-authored-by: SverhRazum-Nah <leon.trol@mail.ru>
Co-authored-by: TomPlop <tomdidome@gmail.com>
2025-05-16 18:49:23 +05:00

1121 lines
39 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// priority: 0
/**
*
* @param {Internal.RecipesEventJS} event
*/
const registerGTCEURecipes = (event) => {
registerGTCEUMetalRecipes(event)
registerGTCEURecyclingRecipes(event)
registerGTCEuTFCMetalsRecipes(event)
registerGTCEuMachineRecipes(event)
removeGTCEURecipes(event)
//#region Выход: Удобрение
// В обычном миксере
event.recipes.gtceu.mixer('fertilizer')
.itemInputs(
'#tfc:dirt',
'2x #tfg:wood_dusts',
'4x #forge:sand'
)
.circuit(1)
.inputFluids(Fluid.of('minecraft:water', 1000))
.itemOutputs('4x gtceu:fertilizer')
.duration(300)
.EUt(30)
//#endregion
//#region Выход: Кварцевый песок
event.shaped('gtceu:quartz_sand_dust', [
'A',
'B'
], {
A: '#forge:sand',
B: '#forge:tools/mortars'
}).id('gtceu:shaped/quartz_sand')
event.recipes.gtceu.macerator('quartz_sand_from_sand')
.itemInputs('#forge:sand')
.itemOutputs('gtceu:quartz_sand_dust')
.duration(30)
.EUt(2)
//#endregion
event.recipes.gtceu.macerator('flux')
.itemInputs('#tfc:fluxstone')
.itemOutputs('2x tfc:powder/flux')
.duration(30)
.EUt(2)
event.recipes.gtceu.forge_hammer('flux')
.itemInputs('#tfc:fluxstone')
.itemOutputs('2x tfc:powder/flux')
.duration(30)
.EUt(2)
//#region Выход: Диоксид силикона
event.recipes.gtceu.electrolyzer('sand_electrolysis')
.itemInputs('8x #forge:sand')
.itemOutputs('gtceu:silicon_dioxide_dust')
.duration(500)
.EUt(25)
//#endregion
event.recipes.gtceu.centrifuge('tfg:beets_to_sugar')
.itemInputs('5x tfc:food/beet')
.inputFluids(Fluid.of('tfc:salt_water', 1000))
.itemOutputs('3x minecraft:sugar', '3x gtceu:plant_ball', '1x #forge:dusts/salt')
.outputFluids(Fluid.of('minecraft:water', 1000))
.duration(800)
.EUt(7)
.circuit(3)
event.smelting('4x tfc:powder/wood_ash', '1x #minecraft:logs_that_burn').id('tfg:wood_ash')
//#region Выход: Соленая пыль + Вода
// Декрафт в центрифуге
event.recipes.gtceu.centrifuge('centrifuging_tfc_salt_water')
.inputFluids(Fluid.of('tfc:salt_water', 1000))
.itemOutputs('1x gtceu:salt_dust')
.outputFluids(Fluid.of('minecraft:water', 1000))
.duration(51)
.EUt(30)
.circuit(1)
// Декрафт в электролайзере
event.recipes.gtceu.electrolyzer('electrolyze_tfc_salt_water')
.inputFluids(Fluid.of('tfc:salt_water', 1000))
.itemOutputs('1x gtceu:sodium_hydroxide_dust', '2x gtceu:small_sodium_hydroxide_dust')
.outputFluids(Fluid.of('gtceu:chlorine', 500), Fluid.of('gtceu:hydrogen', 500))
.duration(720)
.EUt(30)
//#endregion
//#region Выход: Каменный стержень
// Из сырого камня
event.recipes.gtceu.lathe('stone_rod_from_stone')
.itemInputs('#tfc:rock/raw')
.itemOutputs('gtceu:stone_rod', 'gtceu:small_stone_dust')
.duration(15)
.EUt(2)
// Из булыжника
event.recipes.gtceu.lathe('stone_rod_from_cobblestone')
.itemInputs('#forge:cobblestone')
.itemOutputs('gtceu:stone_rod', 'gtceu:small_stone_dust')
.duration(15)
.EUt(2)
//#endregion
//#region Выход: Пропитанные доски
event.remove({ id: 'gtceu:shaped/treated_wood_planks' })
event.recipes.tfc.barrel_sealed(4000)
.outputItem('gtceu:treated_wood_planks')
.inputs('#minecraft:planks', TFC.fluidStackIngredient('#forge:creosote', 100))
.id('tfg:barrel/treated_wood_planks')
//#endregion
//#region Выход: Капля резины
// Из латекса
event.recipes.tfc.pot('tfc:powder/wood_ash', Fluid.of('tfg:latex', 1000), 1200, 300)
.itemOutput('gtceu:sticky_resin')
.id('tfg:pot/sticky_resin_from_latex')
event.recipes.tfc.pot('tfc:powder/wood_ash', Fluid.of('tfg:conifer_pitch', 1000), 1200, 300)
.itemOutput('gtceu:sticky_resin')
.id('tfg:pot/sticky_resin_from_conifer_pitch')
event.recipes.gtceu.fluid_solidifier('tfg:fluid_solidifier/latex_to_sticky_resin')
.duration(24 * 20)
.EUt(30)
.itemInputs('tfc:powder/wood_ash')
.itemOutputs('gtceu:sticky_resin')
.inputFluids(Fluid.of('tfg:latex', 1000))
event.recipes.gtceu.fluid_solidifier('tfg:fluid_solidifier/pitch_to_sticky_resin')
.duration(24 * 20)
.EUt(30)
.itemInputs('tfc:powder/wood_ash')
.itemOutputs('gtceu:sticky_resin')
.inputFluids(Fluid.of('tfg:conifer_pitch', 1000))
//#endregion
//#region Выход: Растительный шарик
// 8x Ванильная растительность -> Plant Ball (Compressor)
event.recipes.gtceu.compressor('plant_ball_from_tfc_seeds')
.itemInputs('8x #tfc:seeds')
.itemOutputs('gtceu:plant_ball')
.duration(300)
.EUt(2)
event.recipes.gtceu.compressor('plant_ball_from_tfc_food')
.itemInputs('8x #tfc:foods')
.itemOutputs('gtceu:plant_ball')
.duration(300)
.EUt(2)
event.recipes.gtceu.compressor('plant_ball_from_tfc_plants')
.itemInputs('8x #tfc:plants')
.itemOutputs('gtceu:plant_ball')
.duration(300)
.EUt(2)
event.recipes.gtceu.compressor('plant_ball_from_tfc_corals')
.itemInputs('8x #tfc:corals')
.itemOutputs('gtceu:plant_ball')
.duration(300)
.EUt(2)
//#endregion
//#region Выход: Биомасса
// Ванильная растительность -> Биомасса (Brewery)
event.recipes.gtceu.brewery('biomass_from_tfc_seeds')
.itemInputs('#tfc:seeds')
.inputFluids(Fluid.of('minecraft:water', 20))
.outputFluids(Fluid.of('gtceu:biomass', 20))
.duration(128)
.EUt(3)
event.recipes.gtceu.brewery('biomass_from_tfc_food')
.itemInputs('#tfc:foods')
.inputFluids(Fluid.of('minecraft:water', 20))
.outputFluids(Fluid.of('gtceu:biomass', 20))
.duration(128)
.EUt(3)
event.recipes.gtceu.brewery('biomass_from_tfc_plants')
.itemInputs('#tfc:plants')
.inputFluids(Fluid.of('minecraft:water', 20))
.outputFluids(Fluid.of('gtceu:biomass', 20))
.duration(128)
.EUt(3)
event.recipes.gtceu.brewery('biomass_from_tfc_corals')
.itemInputs('#tfc:corals')
.inputFluids(Fluid.of('minecraft:water', 20))
.outputFluids(Fluid.of('gtceu:biomass', 20))
.duration(128)
.EUt(3)
event.recipes.gtceu.brewery('biomass_from_spider_eyes')
.itemInputs('minecraft:spider_eye')
.inputFluids(Fluid.of('minecraft:water', 20))
.outputFluids(Fluid.of('gtceu:biomass', 20))
.duration(128)
.EUt(3)
event.recipes.gtceu.brewery('biomass_from_leaves')
.itemInputs('#minecraft:leaves')
.inputFluids(Fluid.of('minecraft:water', 20))
.outputFluids(Fluid.of('gtceu:biomass', 20))
.duration(128)
.EUt(3)
event.recipes.gtceu.brewery('biomass_from_fallen_leaves')
.itemInputs('#tfc:fallen_leaves')
.inputFluids(Fluid.of('minecraft:water', 20))
.outputFluids(Fluid.of('gtceu:biomass', 20))
.duration(128)
.EUt(3)
event.recipes.gtceu.brewery('biomass_from_minecraft_plants')
.itemInputs('#createaddition:plants')
.inputFluids(Fluid.of('minecraft:water', 20))
.outputFluids(Fluid.of('gtceu:biomass', 20))
.duration(128)
.EUt(3)
//#endregion
//#region Выход: Рыбье масло
event.recipes.gtceu.extractor(`tfg/fish_oil`)
.itemInputs('#minecraft:fishes')
.outputFluids(Fluid.of('gtceu:fish_oil', 40))
.duration(16)
.EUt(4)
//#endregion
//#region Выход: Семянное масло
event.recipes.gtceu.extractor(`tfg/seed_oil`)
.itemInputs('#tfc:seeds')
.outputFluids(Fluid.of('gtceu:seed_oil', 16))
.duration(32)
.EUt(2)
//#endregion
//#region Выход: Цемент
generateMixerRecipe(event, ['2x #tfg:stone_dusts', 'gtceu:marble_dust', 'gtceu:gypsum_dust'],
Fluid.of('minecraft:water', 1000), [], null, Fluid.of('gtceu:concrete', 1152), 40, 16, 64, 'concrete_from_marble')
generateMixerRecipe(event, ['3x #tfg:stone_dusts', 'gtceu:clay_dust'],
Fluid.of('minecraft:water', 500), [], null, Fluid.of('gtceu:concrete', 576), 20, 16, 64, 'concrete_from_clay')
generateMixerRecipe(event, ['3x #tfg:stone_dusts', 'gtceu:calcite_dust', 'gtceu:gypsum_dust'],
Fluid.of('minecraft:water', 1000), [], null, Fluid.of('gtceu:concrete', 1152), 40, 16, 64, 'concrete_from_calcite')
//GT light/dark concrete recipe fix
event.remove({ id: 'gtceu:fluid_solidifier/solidify_concrete_block' })
event.remove({ id: 'gtceu:chemical_bath/light_to_dark_concrete' })
event.recipes.gtceu.fluid_solidifier('gtceu:fluid_solidifier/solidify_light_concrete')
.inputFluids(Fluid.of('gtceu:concrete', 144))
.notConsumable('1x gtceu:block_casting_mold')
.itemOutputs('1x gtceu:light_concrete')
.duration(98)
.EUt(7)
event.recipes.gtceu.chemical_bath('gtceu:chemical_bath/dark_concrete')
.inputFluids(Fluid.of('tfc:black_dye', 18))
.itemInputs('1x gtceu:light_concrete')
.itemOutputs('1x gtceu:dark_concrete')
.duration(20)
.EUt(7)
event.recipes.gtceu.extractor('gtceu:extractor/extract_light_concrete')
.itemInputs('1x gtceu:light_concrete')
.outputFluids(Fluid.of('gtceu:concrete', 144))
.duration(98)
.EUt(30)
event.stonecutting('gtceu:light_concrete_bricks', 'gtceu:light_concrete').id('tfg:stonecutting/light_concrete_bricks')
event.stonecutting('gtceu:chiseled_light_concrete', 'gtceu:light_concrete').id('tfg:stonecutting/chiseled_light_concrete')
event.stonecutting('gtceu:light_concrete_tile', 'gtceu:light_concrete').id('tfg:stonecutting/light_concrete_tile')
event.stonecutting('gtceu:light_concrete_small_tile', 'gtceu:light_concrete').id('tfg:stonecutting/light_concrete_small_tile')
event.stonecutting('gtceu:light_concrete_windmill_a', 'gtceu:light_concrete').id('tfg:stonecutting/light_concrete_windmill_a')
event.stonecutting('gtceu:light_concrete_windmill_b', 'gtceu:light_concrete').id('tfg:stonecutting/light_concrete_windmill_b')
event.stonecutting('gtceu:small_light_concrete_bricks', 'gtceu:light_concrete').id('tfg:stonecutting/small_light_concrete_bricks')
event.stonecutting('gtceu:square_light_concrete_bricks', 'gtceu:light_concrete').id('tfg:stonecutting/square_light_concrete_bricks')
event.stonecutting('gtceu:dark_concrete_bricks', 'gtceu:dark_concrete').id('tfg:stonecutting/dark_concrete_bricks')
event.stonecutting('gtceu:chiseled_dark_concrete', 'gtceu:dark_concrete').id('tfg:stonecutting/chiseled_dark_concrete')
event.stonecutting('gtceu:dark_concrete_tile', 'gtceu:dark_concrete').id('tfg:stonecutting/dark_concrete_tile')
event.stonecutting('gtceu:dark_concrete_small_tile', 'gtceu:dark_concrete').id('tfg:stonecutting/dark_concrete_small_tile')
event.stonecutting('gtceu:dark_concrete_windmill_a', 'gtceu:dark_concrete').id('tfg:stonecutting/dark_concrete_windmill_a')
event.stonecutting('gtceu:dark_concrete_windmill_b', 'gtceu:dark_concrete').id('tfg:stonecutting/dark_concrete_windmill_b')
event.stonecutting('gtceu:small_dark_concrete_bricks', 'gtceu:dark_concrete').id('tfg:stonecutting/small_dark_concrete_bricks')
event.stonecutting('gtceu:square_dark_concrete_bricks', 'gtceu:dark_concrete').id('tfg:stonecutting/square_dark_concrete_bricks')
//#endregion
//#region GT marble
event.stonecutting('gtceu:polished_marble', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_polished_marble')
event.stonecutting('gtceu:chiseled_marble', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_chiseled_marble')
event.stonecutting('gtceu:marble_tile', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_marble_tile')
event.stonecutting('gtceu:marble_small_tile', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_marble_small_tile')
event.stonecutting('gtceu:marble_windmill_a', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_marble_windmill_a')
event.stonecutting('gtceu:marble_windmill_b', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_marble_windmill_b')
event.stonecutting('gtceu:small_marble_bricks', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_small_marble_bricks')
event.stonecutting('gtceu:square_marble_bricks', 'tfc:rock/bricks/marble').id('tfg:stonecutting/gt_square_marble_bricks')
//#endregion
//#region Выход: Бурильная жидкость
generateMixerRecipe(
event,
['2x #tfg:stone_dusts'],
[Fluid.of('gtceu:lubricant', 20), Fluid.of('minecraft:water', 4000)],
[],
null,
Fluid.of('gtceu:drilling_fluid', 5000),
40,
16,
64,
'drilling_fluid'
)
//#endregion
//#region Выход: Пыль мяса
event.recipes.gtceu.macerator('macerate_meat_to_dust')
.itemInputs('#tfc:foods/meats')
.itemOutputs('gtceu:meat_dust', 'gtceu:tiny_bone_dust')
.duration(100)
.EUt(2)
//#endregion
//#region Выход: Пыль какао-бобов
event.recipes.gtceu.macerator('macerate_cocoa')
.itemInputs('firmalife:food/roasted_cocoa_beans')
.itemOutputs('gtceu:cocoa_dust')
.duration(100)
.EUt(2)
//#endregion
//#region Стеклодувка
// Glass Tube
event.recipes.tfc.glassworking('gtceu:glass_tube', '#tfc:glass_batches_tier_3', ['blow', 'stretch', 'stretch'])
.id('tfg:gtceu/glassworking/glass_tube')
//#endregion
// Пыль звезды незера
event.recipes.gtceu.chemical_reactor('tfg:gtceu/nether_star_dust')
.itemInputs('2x #forge:dusts/iridium', '#forge:dusts/diamond')
.circuit(10)
.itemOutputs('gtceu:nether_star_dust')
.inputFluids(Fluid.of('gtceu:nether_air', 1000))
.duration(700)
.EUt(2720)
// Creosote-Treated Wood Planks -> Treated Wood Pulp
event.recipes.gtceu.macerator('tfg:gtceu/macerate_treated_wood_planks')
.itemInputs('gtceu:treated_wood_planks')
.itemOutputs('gtceu:treated_wood_dust')
.duration(120)
.EUt(4)
// Empty Wooden Form
event.shaped('gtceu:empty_wooden_form', [
' AA',
'BAA'
], {
A: '#minecraft:planks',
B: '#forge:tools/saws'
}).id('gtceu:shaped/plank_to_wooden_shape')
// Деревянная шестерня
event.shaped('gtceu:small_wood_gear', [
'AB ',
'BCB',
' B '
], {
A: '#forge:tools/saws',
B: '#forge:rods/wooden',
C: 'tfc:glue'
}).id('gtceu:shaped/small_gear_wood')
event.shaped('gtceu:wood_gear', [
'AB ',
'BCB',
' B '
], {
A: '#forge:tools/saws',
B: '#minecraft:planks',
C: 'tfc:glue'
}).id('gtceu:shaped/gear_wood')
// Compressed Coke Clay
event.shaped('gtceu:compressed_coke_clay', [
'AAA',
'BCB',
'BBB'
], {
A: 'minecraft:clay_ball',
B: '#minecraft:sand',
C: 'gtceu:brick_wooden_form'
}).replaceIngredient('gtceu:brick_wooden_form', 'gtceu:brick_wooden_form').id('gtceu:shaped/compressed_coke_clay')
// Coke Oven Brick
event.recipes.tfc.heating('gtceu:compressed_coke_clay', 1399)
.resultItem('gtceu:coke_oven_brick')
.id('tfg:heating/coke_oven_bricks')
event.recipes.gtceu.alloy_smelter('gtceu:coke_oven_brick')
.itemInputs('#minecraft:sand', 'minecraft:clay_ball')
.itemOutputs('gtceu:coke_oven_brick')
.duration(7.5 * 20)
.EUt(GTValues.VA[GTValues.ULV])
// Multi-Smelter
event.shaped('gtceu:multi_smelter', [
'AAA',
'BCB',
'DBD'
], {
A: 'gtceu:hp_steam_furnace',
B: '#gtceu:circuits/hv',
C: 'gtceu:heatproof_machine_casing',
D: 'gtceu:copper_single_cable'
}).id('gtceu:shaped/multi_furnace')
// Electric Blast Furnace
event.shaped('gtceu:electric_blast_furnace', [
'AAA',
'BCB',
'DBD'
], {
A: 'gtceu:hp_steam_furnace',
B: '#gtceu:circuits/lv',
C: 'gtceu:heatproof_machine_casing',
D: 'gtceu:tin_single_cable'
}).id('gtceu:shaped/electric_blast_furnace')
// Клей из ТФК клея
event.recipes.gtceu.extractor('glue_from_tfc_glue')
.itemInputs('tfc:glue')
.outputFluids(Fluid.of('gtceu:glue', 50))
.duration(400)
.EUt(5)
// Исправление рецепта пыли серебра стерлинга
generateMixerRecipe(event, ['#forge:dusts/copper', '4x #forge:dusts/silver'], [], '5x gtceu:sterling_silver_dust', 1, [], 500, 7, 64, 'sterling_silver')
// Исправление рецепта пыли розовой бронзы
generateMixerRecipe(event, ['#forge:dusts/copper', '4x #forge:dusts/gold'], [], '5x gtceu:rose_gold_dust', 3, [], 500, 7, 64, 'rose_gold')
//#region Рецепт ULV микросхемы
event.remove({ id: 'gtceu:shaped/vacuum_tube' })
event.replaceInput({ id: 'gtceu:assembler/vacuum_tube_plain' }, 'gtceu:steel_bolt', 'gtceu:resin_circuit_board')
event.replaceInput({ id: 'gtceu:assembler/vacuum_tube_red_alloy' }, 'gtceu:steel_bolt', 'gtceu:resin_circuit_board')
event.replaceInput({ id: 'gtceu:assembler/vacuum_tube_red_alloy_annealed' }, 'gtceu:steel_bolt', 'gtceu:resin_circuit_board')
event.recipes.createSequencedAssembly([
'gtceu:vacuum_tube',
], 'gtceu:resin_circuit_board', [
event.recipes.createDeploying('tfg:unfinished_vacuum_tube', ['tfg:unfinished_vacuum_tube', '#forge:bolts/steel']),
event.recipes.createDeploying('tfg:unfinished_vacuum_tube', ['tfg:unfinished_vacuum_tube', 'gtceu:copper_single_wire']),
event.recipes.createDeploying('tfg:unfinished_vacuum_tube', ['tfg:unfinished_vacuum_tube', 'gtceu:copper_single_wire']),
event.recipes.createDeploying('tfg:unfinished_vacuum_tube', ['tfg:unfinished_vacuum_tube', 'gtceu:glass_tube']),
event.custom({ type: 'vintageimprovements:vacuumizing', ingredients: [{ item: 'tfg:unfinished_vacuum_tube' }], results: [{ item: 'tfg:unfinished_vacuum_tube' }], processingTime: 80 })
]).transitionalItem('tfg:unfinished_vacuum_tube').loops(1).id('tfg:gtceu/sequenced_assembly/vacuum_tube')
//#endregion
//#region Рецепт LV микросхемы
event.remove({ id: 'gtceu:shaped/electronic_circuit_lv' })
event.recipes.createSequencedAssembly([
'gtceu:basic_electronic_circuit',
], 'gtceu:resin_printed_circuit_board', [
event.recipes.createDeploying('tfg:unfinished_basic_electronic_circuit', ['tfg:unfinished_basic_electronic_circuit', 'gtceu:resistor']),
event.recipes.createDeploying('tfg:unfinished_basic_electronic_circuit', ['tfg:unfinished_basic_electronic_circuit', 'gtceu:resistor']),
event.recipes.createDeploying('tfg:unfinished_basic_electronic_circuit', ['tfg:unfinished_basic_electronic_circuit', 'gtceu:vacuum_tube']),
event.recipes.createDeploying('tfg:unfinished_basic_electronic_circuit', ['tfg:unfinished_basic_electronic_circuit', 'gtceu:vacuum_tube']),
event.recipes.createDeploying('tfg:unfinished_basic_electronic_circuit', ['tfg:unfinished_basic_electronic_circuit', 'create:electron_tube']),
event.recipes.createFilling('tfg:unfinished_basic_electronic_circuit', ['tfg:unfinished_basic_electronic_circuit', Fluid.of('gtceu:glue', 50)]),
event.recipes.createDeploying('tfg:unfinished_basic_electronic_circuit', ['tfg:unfinished_basic_electronic_circuit', '#forge:plates/steel']),
]).transitionalItem('tfg:unfinished_basic_electronic_circuit').loops(1).id('tfg:gtceu/sequenced_assembly/basic_electronic_circuit')
//#endregion
//#region Quantum mainframe stack fix.
//
// Quantum Mainframes need 48x annealed copper wire but
// the stacking limit is 32 so instead allow 24x 2x.
//
// Frustratingly event.replaceInput doesn't allow for
// changing item counts, only types.
event.remove(/gtceu:circuit_assembler\/quantum_mainframe_zpm.*/)
event.recipes.gtceu.circuit_assembler('quantum_mainframe_zpm')
.itemInputs(
'2x gtceu:hssg_frame',
'2x gtceu:quantum_processor_computer',
'48x gtceu:smd_capacitor',
'24x gtceu:smd_inductor',
'24x gtceu:ram_chip',
'24x gtceu:annealed_copper_double_wire')
.inputFluids(Fluid.of('gtceu:tin', 576))
.itemOutputs('gtceu:quantum_processor_mainframe')
.duration(800)
.EUt(7680)
event.recipes.gtceu.circuit_assembler('quantum_mainframe_zpm_soldering_alloy')
.itemInputs(
'2x gtceu:hssg_frame',
'2x gtceu:quantum_processor_computer',
'48x gtceu:smd_capacitor',
'24x gtceu:smd_inductor',
'24x gtceu:ram_chip',
'24x gtceu:annealed_copper_double_wire')
.inputFluids(Fluid.of('gtceu:soldering_alloy', 288))
.itemOutputs('gtceu:quantum_processor_mainframe')
.duration(800)
.EUt(7680)
event.recipes.gtceu.circuit_assembler('quantum_mainframe_zpm_asmd')
.itemInputs(
'2x gtceu:hssg_frame',
'2x gtceu:quantum_processor_computer',
'12x gtceu:advanced_smd_capacitor',
'6x gtceu:advanced_smd_inductor',
'24x gtceu:ram_chip',
'24x gtceu:annealed_copper_double_wire')
.inputFluids(Fluid.of('gtceu:tin', 576))
.itemOutputs('gtceu:quantum_processor_mainframe')
.duration(800)
.EUt(7680)
event.recipes.gtceu.circuit_assembler('quantum_mainframe_zpm_asmd_soldering_alloy')
.itemInputs(
'2x gtceu:hssg_frame',
'2x gtceu:quantum_processor_computer',
'12x gtceu:advanced_smd_capacitor',
'6x gtceu:advanced_smd_inductor',
'24x gtceu:ram_chip',
'24x gtceu:annealed_copper_double_wire')
.inputFluids(Fluid.of('gtceu:soldering_alloy', 288))
.itemOutputs('gtceu:quantum_processor_mainframe')
.duration(800)
.EUt(7680)
//#endregion
// #region Move MV superconductor to early HV instead of post-vac freezer
event.remove({ id: 'gtceu:shaped/hv_chemical_bath' })
event.shaped('gtceu:hv_chemical_bath', [
'ABC',
'DEA',
'FGF'
], {
A: 'gtceu:hv_conveyor_module',
B: 'gtceu:tempered_glass',
C: 'gtceu:gold_single_cable',
D: 'gtceu:hv_electric_pump',
// swap one of the tempered glass for a PE pipe to ensure they've finished the plastic part of MV
E: 'gtceu:polyethylene_normal_fluid_pipe',
F: '#gtceu:circuits/hv',
G: 'gtceu:hv_machine_hull'
}).id('tfg:shaped/hv_chemical_bath')
event.recipes.gtceu.chemical_bath('tfg:magnesium_diboride_cool_down_distilled_water')
.itemInputs('gtceu:hot_magnesium_diboride_ingot')
.inputFluids(Fluid.of('gtceu:distilled_water', 100))
.itemOutputs('gtceu:magnesium_diboride_ingot')
.duration(250)
.EUt(480)
event.recipes.gtceu.chemical_bath('tfg:magnesium_diboride_cool_down')
.itemInputs('gtceu:hot_magnesium_diboride_ingot')
.inputFluids(Fluid.of('minecraft:water', 100))
.itemOutputs('gtceu:magnesium_diboride_ingot')
.duration(400)
.EUt(480)
// #endregion
// #region Add all glass colors to macerator/hammer
event.remove({ id: "gtceu:macerator/macerate_glass" });
event.recipes.gtceu.macerator("gtceu:macerator/macerate_glass")
.itemInputs(
"#forge:glass"
)
.itemOutputs("gtceu:glass_dust")
.duration(20)
.EUt(2);
event.remove({ id: "gtceu:macerator/macerate_glass_pane" });
event.recipes.gtceu.macerator("gtceu:macerator/macerate_glass_pane")
.itemInputs(
"#forge:glass_panes"
)
.itemOutputs("3x gtceu:tiny_glass_dust")
.duration(6)
.EUt(2)
event.replaceInput({ id: "gtceu:shaped/glass_dust_hammer" },
"minecraft:glass",
"#forge:glass"
);
// #endregion
// #region Rich coal processing
event.recipes.gtceu.coke_oven("tfg:poor_coal_to_coke")
.itemInputs('2x gtceu:poor_raw_coal')
.itemOutputs('1x gtceu:coke_gem')
.outputFluids(Fluid.of('gtceu:creosote', 500))
.duration(900)
event.recipes.gtceu.coke_oven("tfg:coal_to_coke")
.itemInputs('gtceu:raw_coal')
.itemOutputs('2x gtceu:coke_gem')
.outputFluids(Fluid.of('gtceu:creosote', 1000))
.duration(900)
event.recipes.gtceu.coke_oven("tfg:rich_coal_to_coke")
.itemInputs('gtceu:rich_raw_coal')
.itemOutputs('4x gtceu:coke_gem')
.outputFluids(Fluid.of('gtceu:creosote', 2000))
.duration(900)
event.recipes.gtceu.pyrolyse_oven("tfg:rich_coal_to_tar")
.itemInputs('3x gtceu:rich_raw_coal')
.chancedOutput('gtceu:dark_ash_dust', 5000, 0)
.outputFluids(Fluid.of('gtceu:coal_tar', 3000))
.duration(288)
.EUt(96)
.circuit(8)
event.recipes.gtceu.pyrolyse_oven("tfg:rich_coal_to_coke_creosote")
.itemInputs('4x gtceu:rich_raw_coal')
.itemOutputs('16x gtceu:coke_gem')
.outputFluids(Fluid.of('gtceu:creosote', 8000))
.duration(576)
.EUt(64)
.circuit(1)
event.recipes.gtceu.pyrolyse_oven("tfg:coal_to_coal_gas")
.itemInputs('4x gtceu:rich_raw_coal')
.itemOutputs('16x gtceu:coke_gem')
.inputFluids(Fluid.of('gtceu:steam'))
.outputFluids(Fluid.of('gtceu:coal_gas', 4000))
.duration(288)
.EUt(96)
.circuit(22)
event.recipes.gtceu.pyrolyse_oven("tfg:coal_to_coke_creosote_nitrogen")
.itemInputs('4x gtceu:rich_raw_coal')
.itemOutputs('16x gtceu:coke_gem')
.inputFluids(Fluid.of('gtceu:nitrogen'))
.outputFluids(Fluid.of('gtceu:creosote', 8000))
.duration(288)
.EUt(96)
.circuit(2)
event.recipes.gtceu.coke_oven("tfg:raw_coal_to_coke")
.itemInputs('gtceu:raw_coal')
.itemOutputs('2x gtceu:coke_gem')
.outputFluids(Fluid.of('gtceu:creosote', 2000))
.duration(1710)
event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_tar")
.itemInputs('6x gtceu:raw_coal')
.chancedOutput('gtceu:dark_ash_dust', 5000, 0)
.outputFluids(Fluid.of('gtceu:coal_tar', 3000))
.duration(288)
.EUt(96)
.circuit(8)
event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_coke_creosote")
.itemInputs('8x gtceu:raw_coal')
.itemOutputs('16x gtceu:coke_gem')
.outputFluids(Fluid.of('gtceu:creosote', 8000))
.duration(576)
.EUt(64)
.circuit(1)
event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_coal_gas")
.itemInputs('8x gtceu:raw_coal')
.itemOutputs('16x gtceu:coke_gem')
.inputFluids(Fluid.of('gtceu:steam'))
.outputFluids(Fluid.of('gtceu:coal_gas', 4000))
.duration(288)
.EUt(96)
.circuit(22)
event.recipes.gtceu.pyrolyse_oven("tfg:raw_coal_to_coke_creosote_nitrogen")
.itemInputs('8x gtceu:raw_coal')
.itemOutputs('16x gtceu:coke_gem')
.inputFluids(Fluid.of('gtceu:nitrogen'))
.outputFluids(Fluid.of('gtceu:creosote', 8000))
.duration(288)
.EUt(96)
.circuit(2)
// #endregion
// #region Fix TFC hanging sign metal dupe for Macerator and Arc Furnace
const SIGN_METALS = [
GTMaterials.Copper,
GTMaterials.Bronze,
GTMaterials.BlackBronze,
GTMaterials.BismuthBronze,
GTMaterials.WroughtIron,
GTMaterials.Steel,
GTMaterials.BlackSteel,
GTMaterials.RedSteel,
GTMaterials.BlueSteel
];
SIGN_METALS.forEach(metal => {
// Arc furnace
global.TFC_WOOD_TYPES.forEach(wood => {
event.remove(`gtceu:arc_furnace/arc_wood/hanging_sign/${metal.getName()}/${wood}`)
event.recipes.gtceu.arc_furnace(`gtceu:arc_furnace/macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
.itemInputs(`tfc:wood/hanging_sign/${metal.getName()}/${wood}`)
.itemOutputs('gtceu:tiny_ash_dust')
.chancedOutput(ChemicalHelper.get(TagPrefix.nugget, metal, 1), 3750, 0)
.inputFluids(Fluid.of('gtceu:oxygen', 12))
.duration(12)
.EUt(30)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
})
global.AFC_WOOD_TYPES.forEach(wood => {
event.recipes.gtceu.arc_furnace(`gtceu:arc_furnace/macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
.itemInputs(`afc:wood/hanging_sign/${metal.getName()}/${wood}`)
.itemOutputs('gtceu:tiny_ash_dust')
.chancedOutput(ChemicalHelper.get(TagPrefix.nugget, metal, 1), 3750, 0)
.inputFluids(Fluid.of('gtceu:oxygen', 12))
.duration(12)
.EUt(30)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
})
// Macerator
global.TFC_HARDWOOD_TYPES.forEach(wood => {
event.remove(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
.itemInputs(`tfc:wood/hanging_sign/${metal.getName()}/${wood}`)
.itemOutputs('gtceu:hardwood_dust')
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, metal, 1), 3750, 0)
.duration(108)
.EUt(8)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
})
global.TFC_SOFTWOOD_TYPES.forEach(wood => {
event.remove(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
.itemInputs(`tfc:wood/hanging_sign/${metal.getName()}/${wood}`)
.itemOutputs('gtceu:wood_dust')
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, metal, 1), 3750, 0)
.duration(108)
.EUt(8)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
})
global.AFC_HARDWOOD_TYPES.forEach(wood => {
event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
.itemInputs(`afc:wood/hanging_sign/${metal.getName()}/${wood}`)
.itemOutputs('gtceu:hardwood_dust')
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, metal, 1), 3750, 0)
.duration(108)
.EUt(8)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
})
global.AFC_SOFTWOOD_TYPES.forEach(wood => {
event.recipes.gtceu.macerator(`gtceu:macerator/macerate_wood/hanging_sign/${metal.getName()}/${wood}`)
.itemInputs(`afc:wood/hanging_sign/${metal.getName()}/${wood}`)
.itemOutputs('gtceu:wood_dust')
.chancedOutput(ChemicalHelper.get(TagPrefix.dustTiny, metal, 1), 3750, 0)
.duration(108)
.EUt(8)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
})
})
// #endregion
//#region Voiding covers
event.replaceInput({ id: 'gtceu:shaped/cover_fluid_voiding' },
'minecraft:ender_pearl', 'ae2:ender_dust');
event.replaceInput({ id: 'gtceu:assembler/cover_fluid_voiding' },
'minecraft:ender_pearl', 'ae2:ender_dust');
event.replaceInput({ id: 'gtceu:shaped/cover_item_voiding' },
'minecraft:ender_pearl', 'ae2:ender_dust');
event.replaceInput({ id: 'gtceu:assembler/cover_item_voiding' },
'minecraft:ender_pearl', 'ae2:ender_dust');
//#endregion
// #region Treated Wood
event.shaped('2x gtceu:treated_wood_door', [
'AA ',
'AA ',
'AA '
], {
A: 'gtceu:treated_wood_plate'
}).id('tfg:shaped/treated_door')
event.shaped('3x gtceu:treated_wood_trapdoor', [
'AAA',
'AAA',
' '
], {
A: 'gtceu:treated_wood_plate'
}).id('tfg:shaped/treated_trapdoor')
// #endregion
// #region Rubber Processing Line
event.recipes.firmalife.vat()
.inputs('tfc:powder/sulfur', Fluid.of('tfg:latex', 1000))
.outputFluid(Fluid.of('tfg:vulcanized_latex', 1000))
.length(300)
.temperature(300)
.id('tfg:vat/vulcanized_latex')
event.recipes.tfc.pot('tfc:powder/sulfur', Fluid.of('tfg:latex', 1000), 1200, 300)
.fluidOutput(Fluid.of('tfg:vulcanized_latex', 1000))
.id('tfg:pot/vulcanized_latex')
event.recipes.gtceu.chemical_reactor('tfg:/latex_to_vulcanized_latex')
.duration(200)
.EUt(20)
.itemInputs('tfc:powder/sulfur')
.inputFluids(Fluid.of('tfg:latex', 1000))
.outputFluids(Fluid.of('tfg:vulcanized_latex', 1000))
event.recipes.gtceu.fluid_solidifier('tfg:/vulcanized_latex_to_raw_rubber_pulp')
.duration(100)
.EUt(20)
.inputFluids(Fluid.of('tfg:vulcanized_latex', 1000))
.itemOutputs('4x gtceu:raw_rubber_dust')
// #endregion
// #region Primitive protection
event.recipes.tfc.barrel_sealed(2000)
.outputItem('tfg:prepared_leather_gloves')
.inputs('tfchotornot:mittens', Fluid.of('tfc:vinegar', 1000))
.id('tfg:sealed_barrel/prepared_leather_gloves')
event.recipes.firmalife.vat()
.outputItem('tfg:latex_soaked_gloves')
.inputs('tfg:prepared_leather_gloves', Fluid.of('tfg:vulcanized_latex', 1000))
.length(300)
.temperature(200)
.id('tfg:vat/latex_soaked_gloves')
event.recipes.firmalife.oven('tfg:latex_soaked_gloves', 120, 1200, 'gtceu:rubber_gloves')
.id('tfg:oven/rubber_gloves')
event.remove({ id: 'gtceu:shaped/rubber_gloves' })
event.recipes.gtceu.alloy_smelter('rubber_gloves_alloy_smelter')
.itemInputs('2x #forge:plates/rubber')
.notConsumable('create:brass_hand')
.itemOutputs('gtceu:rubber_gloves')
.duration(200)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('gtceu:face_mask', [
'ACA',
'ABA',
' D '
], {
A: '#forge:string',
B: '#forge:cloth',
C: 'minecraft:paper',
D: '#tfc:sewing_needles'
})
).id('gtceu:shaped/face_mask')
event.recipes.gtceu.assembler('assemble_face_mask')
.itemInputs('4x #forge:string', '#forge:cloth', 'minecraft:paper')
.itemOutputs('gtceu:face_mask')
.duration(100)
.EUt(GTValues.VA[GTValues.ULV])
.circuit(7)
// #endregion
event.replaceInput({ id: 'gtceu:shaped/nightvision_goggles' }, 'gtceu:glass_lens', 'tfc:lens')
event.replaceInput({ id: 'gtceu:shaped/nightvision_goggles' }, 'gtceu:lv_sodium_battery', '#gtceu:batteries/lv')
event.replaceInput({ id: 'gtceu:shaped/note_block' }, 'minecraft:iron_bars', '#tfg:metal_bars')
event.replaceInput({ id: 'gtceu:shaped/note_block' }, 'gtceu:wood_plate', '#tfc:lumber')
event.replaceInput({ mod: 'gtceu' }, 'minecraft:sugar', '#tfg:sugars')
event.replaceInput({ mod: 'gtceu' }, 'minecraft:string', '#forge:string')
event.recipes.gtceu.fluid_solidifier('tfg:solidify_glue')
.inputFluids(Fluid.of('gtceu:glue', 50))
.notConsumable('gtceu:ball_casting_mold')
.itemOutputs('tfc:glue')
.duration(100)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.centrifuge('tfg:centrifuge_rosin')
.itemInputs('tfg:conifer_rosin')
.outputFluids(Fluid.of('gtceu:glue', 50))
.itemOutputs('2x #forge:dusts/carbon')
.chancedOutput('gtceu:plant_ball', 1000, 850)
.duration(400)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.chemical_reactor(`tfg:treat_latex_plants_into_latex`)
.itemInputs('16x #tfg:rubber_plants', 'gtceu:tiny_sodium_hydroxide_dust')
.circuit(1)
.outputFluids(Fluid.of('tfg:latex', 1000))
.duration(200)
.EUt(20)
event.recipes.createSequencedAssembly([
'gtceu:ulv_voltage_coil',
], 'gtceu:magnetic_iron_rod', [
event.recipes.createDeploying('gtceu:magnetic_iron_rod', ['gtceu:magnetic_iron_rod', '#forge:fine_wires/lead'])
]).transitionalItem('gtceu:magnetic_iron_rod').loops(32).id('tfg:sequenced_assembly/ulv_voltage_coil')
//#endregion
//#region Steam Bloomery
event.recipes.gtceu.steam_bloomery('steam_raw_iron_bloom_coal')
.itemInputs('#forge:ingots/iron', '#tfc:steam_bloomery_basic_fuels')
.itemOutputs('tfc:raw_iron_bloom')
.duration(2400)
.EUt(2)
event.recipes.gtceu.steam_bloomery('steam_raw_iron_bloom_coalcoke')
.itemInputs('2x #forge:ingots/iron', '#tfc:blast_furnace_fuel')
.itemOutputs('2x tfc:raw_iron_bloom')
.duration(2400)
.EUt(2)
forEachMaterial(material => {
const tfcProperty = material.getProperty(TFGPropertyKey.TFC_PROPERTY)
if (tfcProperty == null)
return;
const outputMaterial = tfcProperty.getOutputMaterial() == null ? material : tfcProperty.getOutputMaterial()
if (outputMaterial == GTMaterials.Iron) {
event.recipes.gtceu.steam_bloomery(`steam_raw_iron_bloom_coal_${material.getName()}`)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, material, 1), '#tfc:steam_bloomery_basic_fuels')
.itemOutputs('tfc:raw_iron_bloom')
.duration(2400)
.EUt(2)
event.recipes.gtceu.steam_bloomery(`steam_raw_iron_bloom_coalcoke_${material.getName()}`)
.itemInputs(ChemicalHelper.get(TagPrefix.dust, material, 2), '#tfc:blast_furnace_fuel')
.itemOutputs('2x tfc:raw_iron_bloom')
.duration(2400)
.EUt(2)
}
})
//#endregion
//#region Changing tiers of decomposition recipes
event.recipes.gtceu.electrolyzer('gtceu:decomposition_electrolyzing_clay')
.itemInputs('13x #forge:dusts/clay')
.itemOutputs('2x #forge:dusts/sodium', '1x #forge:dusts/lithium', '2x #forge:dusts/aluminium', '2x #forge:dusts/silicon')
.outputFluids(Fluid.of('minecraft:water', 6000))
.duration(GTMaterials.Clay.getMass() * 13)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.centrifuge('gtceu:stone_dust_separation')
.itemInputs('gtceu:stone_dust')
.chancedOutput('#forge:dusts/quartzite', 2500, 0)
.chancedOutput('#forge:dusts/potassium_feldspar', 2500, 0)
.chancedOutput('#forge:dusts/marble', 2222, 0)
.chancedOutput('#forge:dusts/biotite', 1111, 0)
.chancedOutput('#forge:dusts/metal_mixture', 825, 80)
.chancedOutput('#forge:dusts/sodalite', 550, 55)
.duration(12 * 20)
.EUt(GTValues.VA[GTValues.HV])
//#endregion
//#region Tape
event.shaped('gtceu:basic_tape', [
' A ',
'ABA',
' A '
], {
A: 'minecraft:paper',
B: 'tfc:glue'
}).id('tfg:shaped/basic_tape_from_glue')
event.recipes.gtceu.assembler('basic_tape_from_glue')
.itemInputs('2x minecraft:paper', 'tfc:glue')
.itemOutputs('2x gtceu:basic_tape')
.duration(100)
.EUt(GTValues.VA[GTValues.ULV])
//#endregion
//#region Large boilers fuel rebalance
// Balance is based on adjusting to match singeblock boiler efficiency
// High Pressure Steam Solid Boiler produces 288,000 mB steam/coke
// High Pressure Steam Liquid Boiler produces 432 mB steam/creosote
// By Defualt: Large Bronze Boiler produces 50mB steam/creosote, 32000mB steam/coke
// This is a factor of 9x for solids, 8.64x for liquids
// Large boiler fuel burn time is multiplied by 9, resulting in less fuel used over time for the same amount of steam produced per tick
event.findRecipes({ id: /^gtceu:large_boiler\/.*/, type: "gtceu:large_boiler" }).forEach(large_boiler_recipe => {
let recipe_duration = large_boiler_recipe.json.getAsJsonPrimitive("duration").asInt
large_boiler_recipe.json.remove("duration")
large_boiler_recipe.json.add("duration", recipe_duration * 9)
})
//#endregion
//#region Hopper
event.recipes.gtceu.assembler('gtceu:assembler/hopper_wrought_iron')
.itemInputs('#forge:chests', '5x #forge:plates/wrought_iron')
.itemOutputs('minecraft:hopper')
.circuit(8)
.duration(200)
.EUt(2)
//#endregion
// TODO: Greate again...
event.shapeless('gtceu:programmed_circuit', ['minecraft:stick', '#forge:tools/wrenches'])
.id('tfg:shapeless/programmed_circuit_from_stick')
event.shapeless('gtceu:red_alloy_single_cable', ['gtceu:red_alloy_single_wire', '#forge:plates/rubber'])
.id('tfg:shapeless/red_alloy_single_cable')
event.shapeless('gtceu:tin_single_cable', ['gtceu:tin_single_wire', '#forge:plates/rubber'])
.id('tfg:shapeless/tin_single_cable')
event.shapeless('gtceu:tin_double_cable', ['gtceu:tin_double_wire', '#forge:plates/rubber', '#forge:plates/rubber'])
.id('tfg:shapeless/tin_double_cable')
event.shapeless('gtceu:tin_quadruple_cable', ['gtceu:tin_quadruple_wire', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber'])
.id('tfg:shapeless/tin_quadruple_cable')
event.shapeless('gtceu:tin_octal_cable', ['gtceu:tin_octal_wire', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber'])
.id('tfg:shapeless/tin_octal_cable')
event.shapeless('gtceu:cobalt_single_cable', ['gtceu:cobalt_single_wire', '#forge:plates/rubber'])
.id('tfg:shapeless/cobalt_single_cable')
event.shapeless('gtceu:cobalt_double_cable', ['gtceu:cobalt_double_wire', '#forge:plates/rubber', '#forge:plates/rubber'])
.id('tfg:shapeless/cobalt_double_cable')
event.shapeless('gtceu:cobalt_quadruple_cable', ['gtceu:cobalt_quadruple_wire', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber'])
.id('tfg:shapeless/cobalt_quadruple_cable')
event.shapeless('gtceu:cobalt_octal_cable', ['gtceu:cobalt_octal_wire', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber'])
.id('tfg:shapeless/cobalt_octal_cable')
event.shapeless('gtceu:nickel_single_cable', ['gtceu:nickel_single_wire', '#forge:plates/rubber'])
.id('tfg:shapeless/nickel_single_cable')
event.shapeless('gtceu:nickel_double_cable', ['gtceu:nickel_double_wire', '#forge:plates/rubber', '#forge:plates/rubber'])
.id('tfg:shapeless/nickel_double_cable')
event.shapeless('gtceu:nickel_quadruple_cable', ['gtceu:nickel_quadruple_wire', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber'])
.id('tfg:shapeless/nickel_quadruple_cable')
event.shapeless('gtceu:nickel_octal_cable', ['gtceu:nickel_octal_wire', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber', '#forge:plates/rubber'])
.id('tfg:shapeless/nickel_octal_cable')
}