neuralgia/kubejs/server_scripts/tfg/primitive/recipes.clay.js
Pyritie f324e7e6da
New content for ULV + LV (#2873)
* require black steel plates before the forge hammer, add some blue steel things post-deployer that require a colored steel anvil, start refractory clay dust

* first draft of bakelite, new phenolic boards, new cupro coils

* add another page to the medicine quest

* cl

* backup of lv quests

* quest stuff and some recipe tweaks

* tweak

---------

Co-authored-by: Redeix <redeix.m@gmail.com>
2026-01-26 18:10:22 -06:00

216 lines
No EOL
10 KiB
JavaScript

"use strict";
function registerTFGClayRecipes(event) {
event.shapeless('tfc:crucible', ['tfc:crucible']).id('tfg:empty_crucible')
event.shaped('minecraft:clay', [
'AA',
'AA'
], {
A: 'minecraft:clay_ball'
}).id('tfg:shaped/clay_balls_to_block')
event.shapeless('4x minecraft:clay_ball', ['minecraft:clay'])
.id('tfg:shapeless/clay_block_to_balls')
const TFC_FURNACE_MOLD_RECIPE_COMPONENTS = /** @type {const} */ ([
{ input: "tfc:ceramic/unfired_ingot_mold", output: "tfc:ceramic/ingot_mold", name: "ingot_mold" },
{ input: "tfc:ceramic/unfired_pickaxe_head_mold", output: "tfc:ceramic/pickaxe_head_mold", name: "pickaxe_head_mold" },
{ input: "tfc:ceramic/unfired_propick_head_mold", output: "tfc:ceramic/propick_head_mold", name: "propick_head_mold" },
{ input: "tfc:ceramic/unfired_axe_head_mold", output: "tfc:ceramic/axe_head_mold", name: "axe_head_mold" },
{ input: "tfc:ceramic/unfired_shovel_head_mold", output: "tfc:ceramic/shovel_head_mold", name: "shovel_head_mold" },
{ input: "tfc:ceramic/unfired_hoe_head_mold", output: "tfc:ceramic/hoe_head_mold", name: "hoe_head_mold" },
{ input: "tfc:ceramic/unfired_chisel_head_mold", output: "tfc:ceramic/chisel_head_mold", name: "chisel_head_mold" },
{ input: "tfc:ceramic/unfired_hammer_head_mold", output: "tfc:ceramic/hammer_head_mold", name: "hammer_head_mold" },
{ input: "tfc:ceramic/unfired_saw_blade_mold", output: "tfc:ceramic/saw_blade_mold", name: "saw_blade_mold" },
{ input: "tfc:ceramic/unfired_javelin_head_mold", output: "tfc:ceramic/javelin_head_mold", name: "javelin_head_mold" },
{ input: "tfc:ceramic/unfired_sword_blade_mold", output: "tfc:ceramic/sword_blade_mold", name: "sword_blade_mold" },
{ input: "tfc:ceramic/unfired_mace_head_mold", output: "tfc:ceramic/mace_head_mold", name: "mace_head_mold" },
{ input: "tfc:ceramic/unfired_knife_blade_mold", output: "tfc:ceramic/knife_blade_mold", name: "knife_blade_mold" },
{ input: "tfc:ceramic/unfired_scythe_blade_mold", output: "tfc:ceramic/scythe_blade_mold", name: "scythe_blade_mold" },
{ input: "tfc:ceramic/unfired_bell_mold", output: "tfc:ceramic/bell_mold", name: "bell_mold" },
{ input: "tfc:ceramic/unfired_fire_ingot_mold", output: "tfc:ceramic/fire_ingot_mold", name: "fire_ingot_mold" },
{ input: "tfc:ceramic/unfired_brick", output: "minecraft:brick", name: "brick" },
{ input: "tfc:ceramic/unfired_crucible", output: "tfc:crucible", name: "crucible" },
{ input: "tfc:ceramic/unfired_flower_pot", output: "minecraft:flower_pot", name: "flower_pot" },
{ input: "tfc:ceramic/unfired_pan", output: "tfc:pan/empty", name: "pan" },
{ input: "tfc:ceramic/unfired_blowpipe", output: "tfc:ceramic_blowpipe", name: "ceramic_blowpipe" },
{ input: "tfc:ceramic/unfired_bowl", output: "tfc:ceramic/bowl", name: "bowl" },
{ input: "tfc:ceramic/unfired_fire_brick", output: "tfc:ceramic/fire_brick", name: "fire_brick" },
{ input: "tfc:ceramic/unfired_jug", output: "tfc:ceramic/jug", name: "jug" },
{ input: "tfc:ceramic/unfired_pot", output: "tfc:ceramic/pot", name: "pot" },
{ input: "tfc:ceramic/unfired_spindle_head", output: "tfc:ceramic/spindle_head", name: "spindle_head" },
{ input: "tfc:ceramic/unfired_vessel", output: "tfc:ceramic/vessel", name: "vessel" },
{ input: "tfc:ceramic/unfired_large_vessel", output: "tfc:ceramic/large_vessel", name: "large_vessel" },
{ input: "tfcchannelcasting:unfired_channel", output: "tfcchannelcasting:channel", name: "channel" },
{ input: "tfcchannelcasting:unfired_mold_table", output: "tfcchannelcasting:mold_table", name: "mold_table" },
{ input: "firmalife:oven_top", output: "firmalife:cured_oven_top", name: "oven_top" },
{ input: "firmalife:oven_chimney", output: "firmalife:cured_oven_chimney", name: "oven_chimney" },
{ input: "firmalife:oven_bottom", output: "firmalife:cured_oven_bottom", name: "oven_bottom" },
{ input: "firmalife:oven_hopper", output: "firmalife:cured_oven_hopper", name: "oven_hopper" },
{ input: "tfg:unfired_rod_mold", output: "tfg:rod_mold", name: "rod_mold" },
{ input: "tfg:unfired_small_gear_mold", output: "tfg:small_gear_mold", name: "small_gear_mold" },
{ input: "tfg:unfired_nugget_mold", output: "tfg:nugget_mold", name: "nugget_mold" }
]);
TFC_FURNACE_MOLD_RECIPE_COMPONENTS.forEach(element => {
event.smelting(element.output, element.input)
.id(`tfg:smelting/${element.name}`)
})
global.MINECRAFT_DYE_NAMES.forEach(dye => {
event.smelting(`tfc:ceramic/${dye}_glazed_vessel`, `tfc:ceramic/${dye}_unfired_vessel`)
.id(`tfg:smelting/${dye}_glazed_vessel`)
event.smelting(`tfc:ceramic/large_vessel/${dye}`, `tfc:ceramic/unfired_large_vessel/${dye}`)
.id(`tfg:smelting/${dye}_large_vessel`)
})
const TFC_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS = /** @type {const} */ ([
{ input: "5x minecraft:clay_ball", output: "2x tfc:ceramic/unfired_flower_pot", name: "flower_pot" },
{ input: "5x minecraft:clay_ball", output: "4x tfc:ceramic/unfired_bowl", name: "bowl" },
{ input: "5x minecraft:clay_ball", output: "10x rnr:unfired_roof_tile", name: "roof_tile" },
{ input: "5x minecraft:clay_ball", output: "firmalife:oven_top", name: "oven_top" },
{ input: "5x minecraft:clay_ball", output: "firmalife:oven_chimney", name: "oven_chimney" },
{ input: "5x minecraft:clay_ball", output: "firmalife:oven_bottom", name: "oven_bottom" }
]);
for (let i = 0; i < TFC_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS.length; i++) {
let element = TFC_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS[i];
event.recipes.gtceu.assembler(`tfg:tfc/${element.name}`)
.itemInputs(element.input)
.circuit(i)
.itemOutputs(element.output)
.duration(450)
.EUt(2)
}
const TFC_FIRE_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS = /** @type {const} */ ([
{ input: "5x tfc:fire_clay", output: "tfc:ceramic/unfired_crucible", name: "crucible" }
]);
for (let i = 0; i < TFC_FIRE_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS.length; i++) {
let element = TFC_FIRE_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS[i];
event.recipes.gtceu.assembler(`tfg:tfc/${element.name}`)
.itemInputs(element.input)
.circuit(i)
.itemOutputs(element.output)
.duration(450)
.EUt(2)
}
event.shapeless('3x tfc:ceramic/unfired_brick', ['4x minecraft:clay_ball', 'gtceu:brick_wooden_form', 'minecraft:clay_ball'])
.id('tfg:shapeless/unfired_brick_via_wooden_form')
event.shapeless('3x tfc:ceramic/unfired_fire_brick', ['4x tfc:fire_clay', 'gtceu:brick_wooden_form', 'tfc:fire_clay'])
.id('tfg:shapeless/unfired_fire_brick_via_wooden_form')
event.recipes.gtceu.extruder('tfg:unfired_clay_brick')
.itemInputs('minecraft:clay_ball')
.notConsumable('gtceu:ingot_extruder_mold')
.itemOutputs('tfc:ceramic/unfired_brick')
.duration(20)
.EUt(2)
event.recipes.gtceu.extruder('tfg:unfired_fire_clay_brick')
.itemInputs('tfc:fire_clay')
.notConsumable('gtceu:ingot_extruder_mold')
.itemOutputs('tfc:ceramic/unfired_fire_brick')
.duration(20)
.EUt(2)
// Kaolinite Clay - regular smelting recipes can't have multiple inputs
event.recipes.gtceu.alloy_smelter('tfg:kaolinite')
.itemInputs('tfc:kaolin_clay')
.circuit(1)
.chancedOutput('tfc:powder/kaolinite', 2000, 0)
.duration(100)
.EUt(16)
// Fire Clay
event.recipes.gtceu.alloy_smelter('tfg:cheaper_fire_clay')
.itemInputs('#forge:dusts/graphite', '4x tfc:kaolin_clay')
.itemOutputs('2x tfc:fire_clay')
.duration(600)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.alloy_smelter('tfg:oops_i_smelted_all_my_kaolin')
.itemInputs('minecraft:clay_ball', 'tfc:powder/kaolinite')
.itemOutputs('tfc:kaolin_clay')
.duration(600)
.EUt(GTValues.VA[GTValues.ULV])
// Compressed Coke Clay
event.shaped('gtceu:compressed_coke_clay', [
'AAA',
'BCB',
'BBB'
], {
A: 'minecraft:clay_ball',
B: '#forge: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('3x #forge:sand', '2x minecraft:clay_ball')
.itemOutputs('gtceu:coke_oven_brick')
.duration(7.5 * 20)
.EUt(GTValues.VA[GTValues.ULV])
// Ceramic Recycling
event.recipes.gtceu.macerator('tfg:sherd_to_brick_dust')
.itemInputs('firmalife:pottery_sherd')
.itemOutputs('#forge:dusts/brick')
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.duration(20)
.EUt(2)
event.recipes.gtceu.macerator('tfg:ceramic_molds')
.itemInputs('#tfc:fired_molds')
.itemOutputs('2x #forge:dusts/brick')
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.duration(20)
.EUt(2)
event.recipes.gtceu.macerator('tfg:large_vessels')
.itemInputs('#tfc:fired_large_vessels')
.itemOutputs('5x #forge:dusts/brick')
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.duration(20)
.EUt(2)
var refractoryClay = GTMaterials.get('tfg:refractory_clay');
TFGHelpers.registerMaterialInfo('tfc:blast_furnace', [GTMaterials.WroughtIron, 16, refractoryClay, 5])
TFGHelpers.registerMaterialInfo('tfc:fire_bricks', [refractoryClay, 5])
TFGHelpers.registerMaterialInfo('tfc:crucible', [refractoryClay, 5])
TFGHelpers.registerMaterialInfo('tfc:ceramic/fire_brick', [refractoryClay, 1])
TFGHelpers.registerMaterialInfo('tfcchannelcasting:channel', [refractoryClay, 5/4])
TFGHelpers.registerMaterialInfo('tfcchannelcasting:mold_table', [refractoryClay, 5])
TFGHelpers.registerMaterialInfo('tfc:ceramic/fire_ingot_mold', [refractoryClay, 5/2])
TFGHelpers.registerMaterialInfo('tfg:rod_mold', [refractoryClay, 5])
TFGHelpers.registerMaterialInfo('tfg:small_gear_mold', [refractoryClay, 5])
// Renewable clay
event.recipes.gtceu.rock_breaker("clay_duping")
.notConsumable('minecraft:clay')
.itemOutputs('minecraft:clay')
.adjacentFluids(["tfc:salt_water", "tfc:spring_water"])
.duration(50)
.EUt(GTValues.VA[GTValues.LV])
// heating
event.recipes.tfc.heating('tfg:unfired_rod_mold', 1399)
.resultItem('tfg:rod_mold')
event.recipes.tfc.heating('tfg:unfired_small_gear_mold', 1399)
.resultItem('tfg:small_gear_mold')
event.recipes.tfc.heating('tfg:unfired_nugget_mold', 1399)
.resultItem('tfg:nugget_mold')
}