neuralgia/kubejs/server_scripts/tfg/primitive/recipes.supports.js
2025-12-11 23:44:25 +00:00

229 lines
7.6 KiB
JavaScript

// priority: 0
"use strict";
/**
* @param {Internal.RecipesEventJS} event
*/
function registerTFGSupportRecipes(event) {
// Concrete Supports
event.recipes.gtceu.fluid_solidifier('tfg:gtceu/fluid_solidifier/reinforced_light_concrete_support')
.inputFluids(Fluid.of('gtceu:concrete', 96))
.itemOutputs('1x tfg:reinforced_light_concrete_support')
.itemInputs('1x tfg:rebar_support')
.duration(60)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler('tfg:gtceu/assembler/reinforced_light_concrete_support')
.inputFluids(Fluid.of('gtceu:concrete', 96))
.itemOutputs('1x tfg:reinforced_light_concrete_support')
.itemInputs('1x tfg:rebar_support')
.duration(120)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.macerator(`reinforced_light_concrete_support_to_dust`)
.itemInputs('tfg:reinforced_light_concrete_support')
.itemOutputs('gtceu:tiny_steel_dust')
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING);
event.recipes.gtceu.chemical_bath('tfg:gtceu/chemical_bath/reinforced_dark_concrete_support')
.inputFluids(Fluid.of('tfc:black_dye', 10))
.itemOutputs('1x tfg:reinforced_dark_concrete_support')
.itemInputs('1x tfg:reinforced_light_concrete_support')
.duration(60)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.chemical_bath('tfg:gtceu/chemical_bath/dark_concrete_support')
.inputFluids(Fluid.of('tfc:black_dye', 10))
.itemOutputs('1x tfg:dark_concrete_support')
.itemInputs('1x tfg:light_concrete_support')
.duration(60)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.macerator(`reinforced_dark_concrete_support_to_dust`)
.itemInputs('tfg:reinforced_dark_concrete_support')
.itemOutputs('gtceu:tiny_steel_dust')
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING);
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('8x tfg:light_concrete_support', [
'AB ',
'AC ',
'AC '
], {
A: 'gtceu:light_concrete',
B: '#tfc:chisels',
C: 'tfc:mortar'
}).id('tfg:shaped/light_concrete_support'))
event.recipes.gtceu.assembler('tfg:gtceu/assembler/light_concrete_support')
.circuit(11)
.inputFluids(Fluid.of('gtceu:concrete', 36))
.itemOutputs('8x tfg:light_concrete_support')
.itemInputs('3x gtceu:light_concrete')
.duration(40)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('8x tfg:dark_concrete_support', [
'AB ',
'AC ',
'AC '
], {
A: 'gtceu:dark_concrete',
B: '#tfc:chisels',
C: 'tfc:mortar'
}).id('tfg:shaped/dark_concrete_support'))
event.recipes.gtceu.assembler('tfg:gtceu/assembler/dark_concrete_support')
.circuit(11)
.inputFluids(Fluid.of('gtceu:concrete', 36))
.itemOutputs('8x tfg:dark_concrete_support')
.itemInputs('3x gtceu:dark_concrete')
.duration(40)
.EUt(GTValues.VA[GTValues.ULV])
// Stone Supports
global.TFC_STONE_TYPES.forEach(stone => {
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped(`8x tfg:${stone}_support`, [
'AB ',
'AC ',
'AC '
], {
A: `tfc:rock/loose/${stone}`,
B: '#tfc:chisels',
C: 'tfc:mortar'
}).id(`tfg:shaped/${stone}_support`))
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped(`8x tfg:${stone}_support`, [
'AB ',
'AC ',
'AC '
], {
A: `tfc:rock/mossy_loose/${stone}`,
B: '#tfc:chisels',
C: 'tfc:mortar'
}).id(`tfg:shaped/mossy/${stone}_support`))
event.recipes.gtceu.assembler(`tfg:gtceu/assembler/${stone}_support`)
.circuit(11)
.inputFluids(Fluid.of('gtceu:concrete', 36))
.itemOutputs(`8x tfg:${stone}_support`)
.itemInputs(`3x tfc:rock/loose/${stone}`)
.duration(40)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler(`tfg:gtceu/assembler/mossy/${stone}_support`)
.circuit(11)
.inputFluids(Fluid.of('gtceu:concrete', 36))
.itemOutputs(`8x tfg:${stone}_support`)
.itemInputs(`3x tfc:rock/mossy_loose/${stone}`)
.duration(40)
.EUt(GTValues.VA[GTValues.ULV])
})
// REDO w/ table and loop
const EXO_STONE_SUPPORTS = [
{ loose: 'tfg:loose/deepslate', support: 'tfg:migmatite_support', material: 'deepslate' },
{ loose: 'beneath:blackstone_pebble', support: 'tfg:pyroxenite_support', material: 'blackstone', },
{ loose: 'tfg:loose/dripstone', support: 'tfg:travertine_support', material: 'dripstone' },
{ loose: 'tfg:loose/crackrack', support: 'tfg:keratophyre_support', material: 'netherrack' },
{ loose: 'tfg:loose/moon_stone', support: 'tfg:anorthosite_support', material: 'moon_stone' },
{ loose: 'tfg:loose/moon_deepslate', support: 'tfg:norite_support', material: 'moon_deepslate' },
{ loose: 'tfg:loose/mars_stone', support: 'tfg:argillite_support', material: 'mars_stone' },
{ loose: 'tfg:loose/venus_stone', support: 'tfg:trachyte_support', material: 'venus_stone', },
{ loose: 'tfg:loose/mercury_stone', support: 'tfg:komatiite_support', material: 'mercury_stone' },
{ loose: 'tfg:loose/glacio_stone', support: 'tfg:phonolite_support', material: 'glacio_stone' },
{ loose: 'tfg:loose/permafrost', support: 'tfg:permafrost_support', material: 'ice' },
{ loose: 'tfg:loose/red_granite', support: 'tfg:red_granite_support', material: 'granite_red' },
{ loose: 'gtceu:stone_ingot', support: 'tfg:stone_support', material: 'stone' }
]
EXO_STONE_SUPPORTS.forEach(s => {
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped(`8x ${s.support}`, [
'AB ',
'AC ',
'AC '
], {
A: s.loose,
B: '#tfc:chisels',
C: 'tfc:mortar'
}).id(`tfg:shaped/${s.support.split(':')[1]}`)
)
event.recipes.gtceu.assembler(`tfg:gtceu/assembler/${s.support.split(':')[1]}`)
.circuit(11)
.inputFluids(Fluid.of('gtceu:concrete', 36))
.itemOutputs(`8x ${s.support}`)
.itemInputs(`3x ${s.loose}`)
.duration(40)
.EUt(GTValues.VA[GTValues.ULV])
let regexMatch = s.support.match(/tfg:(.*?)_support/);
let supportName = regexMatch[1];
let stoneMaterial = TFGHelpers.getMaterial(s.material);
let dustSmall = ChemicalHelper.get(TagPrefix.dustSmall, stoneMaterial, 1)
event.recipes.gtceu.macerator(`${supportName}_support_to_dust`)
.itemInputs(s.support)
.itemOutputs(dustSmall)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING);
})
// Metal Supports
event.shaped('8x tfg:rebar_support', [
'BA ',
'AC '
], {
A: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Steel, 1),
B: ChemicalHelper.get(TagPrefix.wireFine, GTMaterials.Steel, 1),
C: '#forge:tools/wire_cutters'
}).id('tfg:shaped/rebar_support')
event.recipes.gtceu.assembler('tfg:gtceu/assembler/rebar_support')
.circuit(11)
.itemOutputs('8x tfg:rebar_support')
.itemInputs(ChemicalHelper.get(TagPrefix.rod, GTMaterials.Steel, 2), ChemicalHelper.get(TagPrefix.wireFine, GTMaterials.Steel, 1))
.duration(100)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.macerator(`rebar_support_to_dust`)
.itemInputs(`tfg:rebar_support`)
.itemOutputs(`gtceu:tiny_steel_dust`)
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING);
event.recipes.tfc.anvil(
'1x tfg:steel_support',
'#forge:double_ingots/steel',
[
'upset_last',
'shrink_any'
]
).tier(4).id('tfg:anvil/steel_support')
event.recipes.gtceu.assembler('tfg:gtceu/assembler/steel_support')
.circuit(11)
.itemOutputs('4x tfg:steel_support')
.itemInputs('2x #forge:double_ingots/steel')
.duration(100)
.EUt(GTValues.VA[GTValues.ULV])
.addMaterialInfo(true)
event.recipes.gtceu.macerator("steel_support_to_dust")
.itemInputs('tfg:steel_support')
.itemOutputs('2x gtceu:steel_dust')
.duration(150)
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING);
}