* changed Caelum to be on the server too, since tfc-caelum is also a server mod * added caelum + tfc-caelum to pakku * fixed stress levels on the rolling mill * fixed lang files for universal circuits * changed early game recipes to use small gears instead of large, to avoid duping, and make cogs easier * Update carryon-common.toml Carry On's config doesn't seem to work with tags (#), so I explicitly added the framedblocks chest and the tfc chests to the whitelist. I also removed storage drawers since they aren't in use. Signed-off-by: NobleWasTaken <137561393+NobleWasTaken@users.noreply.github.com> * - Missed this commit last time oops * Fixed nano legs buff from also removing speed buff, for now * Added recycling recipes for your old molds * lowered recipe speed of bulk washing * Added more details to ore hazards field guide entry * Bump actions/download-artifact in the dependencies group Bumps the dependencies group with 1 update: [actions/download-artifact](https://github.com/actions/download-artifact). Updates `actions/download-artifact` from 4.2.1 to 4.3.0 - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/v4.2.1...v4.3.0) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-version: 4.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies ... Signed-off-by: dependabot[bot] <support@github.com> * will you leave me alone if I submit these, ftbquests? * more create SU adjustments * - Added recipe to separate fertilizer into pure sources, and mix them back together. - Added recipes to sew hides together and cut them apart. * ore basics + hazards field guide entry tweaks * big field guide update! all ore veins are now generated with our tool! * toned down how many sticks were being placed in the nether * remove caelum + tfc caelum #922 * - Added recipe to separate fertilizer into pure sources, and mix them back together. (#927) - Added recipes to sew hides together and cut them apart. * the placeholder programmed circuit recipe is now a stick + wrench, so it doesn't confuse new players as much * updated changelog * changed some create recipes to use bolts instead of nuggets, so they're available earlier * moved surface_kaolin to mechanics category * changed realgar item set * Add README file to server overrides * Fix tips quest issues (#937) * - Fixed supports * fixed some incorrect assembler recipes for create items * improved texture of nether quartz ore + the raw ore block of the quartz material set * greate buffs * remove brick duping * removed treated wood boats * clay decomposition now requires HV * added a potential fix for #944 suggested by ghosti, cleaned up some other abuses of it in tag events so now it's just indicators that still have to use it * fixed tfc tool tags * fluix's displayed formula is now more accurate to its material composition * nerfed stone dust centrifuging, added a basic tape recipe that uses tfc glue * fixes #932 * Allow red/tin alloy double ingot piles, add textures (#948) * Mv quest rework (#920) * Changes for MV Quests * First fix for Progression tab * fixes lang title Signed-off-by: TomPlop <tomdidome@gmail.com> * Changes for LV, fixes for quest categories, adding GT Tips, adding Gregtech energy, rework of Progression tab * fix macerator separator --------- Signed-off-by: TomPlop <tomdidome@gmail.com> * - the other ae2 wireless terminals are now all in late EV - MEGA ae2 stuff now requires naq instead of a singularity * coke and coal are no longer gems, and moss is no longer dirt * fixed some icon sets * the nether now has a gas collector recipe * update changelog * some more ae2 tweaking * better recipe for the universal wireless terminal * swapped colors of nickel and platinum, so nickel more closely matches the tfc textures * doubled capacity of greate shafts! also adjusted the alternator to match * fix: gui_main_menu * pakku update * fix: gui_main_menu 2 * Update mods * removed beneath's cursecoal and sylvite veins, made tfg ones instead so they're added to the field guide * new main menu panorama! * update changelog * update changelog * added death punishment mod + config * updated the greate mixer workaround quest * Rubber processing recipes audit (#949) * Rubber recipe changes - Latex can now be extracted from rubber trees' logs, saplings, leaves via the vacuum chamber (ULV) or extractor(LV) - values: 1000mB per log, 100mB per sapling, 50mB per leaves; Extractor recipes do this in bulk and output 1000mB per operation - Dandelions and goldenrods can, with added sodium hydroxide, be turned into latex in a chem reactor - Sticky resin recipes (from both conifer pitch and latex) require wood ash now instead of sulfur - Latex -> Vulcanized latex recipe now requires sulfur instead of wood ash - Vulcanized latex now becomes raw rubber pulp in a solidifier or vacuum chamber at a rate of 250mB/raw pulp - Latex soaked glove recipe now is a barrel recipe that takes 50 seconds instead of a vat recipe * Correctly set latex soaked gloves recipe to 50 seconds (was 100 seconds in previous commit) * Quest/patchouli book updates - Tried to catch every mention of the old rubber making recipes. * Revert Latex-soaked gloves recipe change as it didn't need to change - Originally I wanted to make vulc latex -> raw rubber a Vat recipe, this isn't the case anymore so there is no reason to change this recipe. * Rebalanced recipe values - Logs now only give 250mB of latex - Increase overall in time required vacuumizing directly into latex (now roughly takes 150 seconds per 1000mB, logs slightly faster) - Gregtech fluid extraction recipes for these have been rebalanced to be around 4x faster and in bulk (roughly 37.5 seconds per 1000mB, logs slightly faster) - Made vacuum chamber recipes use kubejs tag: field for allowing tags in recipe * Lang & Quest updates - Changed rubber ingot quest dependency to be on vacuum chamber instead of extractor - Removed LV circuit quest dependency on rubber (this hasn't required rubber for a while) - Lang changes - fix ambiguous wording, typos, titles too long for book * updated langs * oops, missed quest langs * pushing algo_rithm's lang changes * updated punishment-for-death pakku * update configs * langs * Update CHANGELOG.md * Update mods * CHANGELOG * Update build.yml --------- Signed-off-by: NobleWasTaken <137561393+NobleWasTaken@users.noreply.github.com> Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: TomPlop <tomdidome@gmail.com> Co-authored-by: NobleWasTaken <137561393+NobleWasTaken@users.noreply.github.com> Co-authored-by: Redeix <59435925+Redeix@users.noreply.github.com> Co-authored-by: Redeix <brayden.j.m.ford@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Xikaro <55663835+Xikaro@users.noreply.github.com> Co-authored-by: Nebby1999 <nebby131999@gmail.com> Co-authored-by: Nebby <78170922+Nebby1999@users.noreply.github.com> Co-authored-by: AirRice <jpumph2@gmail.com> Co-authored-by: TomPlop <tomdidome@gmail.com> Co-authored-by: Xikaro <os.valerievich@ya.ru>
315 lines
9.9 KiB
JavaScript
315 lines
9.9 KiB
JavaScript
// priority: 0
|
|
|
|
/**
|
|
*
|
|
* @param {Internal.RecipesEventJS} event
|
|
*/
|
|
const registerTFCRecipes = (event) => {
|
|
|
|
removeTFCRecipes(event)
|
|
registerTFCMaterialsRecipes(event)
|
|
registerTFCMetalsRecipes(event)
|
|
registerTFCStoneRecipes(event)
|
|
registerTFCSandRecipes(event)
|
|
registerTFCDirtRecipes(event)
|
|
registerTFCWoodRecipes(event)
|
|
registerTFCKnappingRecipes(event)
|
|
registerTFCMachineRecipes(event)
|
|
registerTFCAlabasterRecipes(event)
|
|
registerTFCDyeRecipes(event)
|
|
|
|
//#region Рецепты порошков
|
|
|
|
// Добавление рецептов
|
|
global.TFC_QUERN_POWDER_RECIPE_COMPONENTS.forEach(element => {
|
|
event.recipes.gtceu.macerator(`tfg:${element.name}`)
|
|
.itemInputs(element.input)
|
|
.itemOutputs(element.output)
|
|
.duration(60)
|
|
.EUt(2)
|
|
|
|
event.recipes.tfc.quern(element.output, element.input)
|
|
.id(`tfg:quern/${element.name}`)
|
|
})
|
|
|
|
//#endregion
|
|
|
|
//#region Рецепты зерен
|
|
|
|
global.TFC_QUERN_GRAIN_RECIPE_COMPONENTS.forEach(element => {
|
|
|
|
event.recipes.gtceu.macerator(`tfg:${element.name}`)
|
|
.itemInputs(element.input)
|
|
.itemOutputs(element.output)
|
|
.chancedOutput('tfc:straw', 7000, 500)
|
|
.duration(200)
|
|
.EUt(2)
|
|
|
|
event.recipes.tfc.quern(element.output, element.input)
|
|
.id(`tfg:quern/${element.name}`)
|
|
})
|
|
|
|
//#endregion
|
|
|
|
//#region Рецепты муки
|
|
|
|
global.TFC_QUERN_FLOUR_RECIPE_COMPONENTS.forEach(element => {
|
|
event.recipes.gtceu.macerator(`tfg:${element.name}`)
|
|
.itemInputs(element.input)
|
|
.itemOutputs(element.output)
|
|
.duration(200)
|
|
.EUt(2)
|
|
})
|
|
|
|
//#endregion
|
|
|
|
//#region Рецепты обжарки мяса
|
|
|
|
global.TFC_FURNACE_MEAT_RECIPE_COMPONENTS.forEach(element => {
|
|
event.smelting(element.output, element.input)
|
|
.id(`tfg:smelting/${element.name}`)
|
|
})
|
|
|
|
//#endregion
|
|
|
|
//#region Рецепты обжарки форм
|
|
|
|
global.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`)
|
|
})
|
|
|
|
//#endregion
|
|
|
|
|
|
//#region Рецепты электрической теплицы
|
|
|
|
// Дерево
|
|
global.TFC_WOOD_TYPES.forEach(wood => {
|
|
generateGreenHouseRecipe(event, `8x tfc:wood/sapling/${wood}`, 16000, `64x tfc:wood/log/${wood}`, `tfg:greenhouse/${wood}`)
|
|
})
|
|
|
|
global.AFC_SAPLINGS.forEach(x => {
|
|
generateGreenHouseRecipe(event, `8x afc:wood/sapling/${x.sapling}`, 16000, `64x ${x.log}`, `tfg:greenhouse/${x.sapling}`)
|
|
})
|
|
|
|
// Семена фруктов
|
|
global.TFC_GREENHOUSE_FRUIT_RECIPE_COMPONENTS.forEach(element => {
|
|
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name)
|
|
})
|
|
|
|
// Семена овощей
|
|
global.TFC_GREENHOUSE_VEGETABLE_RECIPE_COMPONENTS.forEach(element => {
|
|
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name)
|
|
})
|
|
|
|
// Семена ягод
|
|
global.TFC_GREENHOUSE_BERRY_RECIPE_COMPONENTS.forEach(element => {
|
|
generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name)
|
|
})
|
|
|
|
// Растения
|
|
Ingredient.of('#tfc:plants').stacks.forEach(element => {
|
|
const itemId = element.id;
|
|
const recipeId = `greenhouse_${itemId.replace(':', '_')}`;
|
|
|
|
generateGreenHouseRecipe(event, itemId, 8000, `8x ${itemId}`, recipeId);
|
|
});
|
|
|
|
//#endregion
|
|
|
|
//#region Рецепты хлеба
|
|
|
|
global.TFC_FURNACE_BREAD_RECIPE_COMPONENTS.forEach(element => {
|
|
event.smelting(element.output, element.input)
|
|
.id(`tfg:smelting/${element.name}`)
|
|
})
|
|
|
|
//#endregion
|
|
|
|
event.shapeless('tfc:crucible', ['tfc:crucible']).id('tfg:empty_crucible')
|
|
|
|
event.shapeless('2x minecraft:stick', ['#minecraft:saplings', '#forge:tools/knives']).id('tfg:strip_saplings')
|
|
|
|
// Доменная печь
|
|
event.shaped('tfc:blast_furnace', [
|
|
'AAA',
|
|
'ABA',
|
|
'AAA'
|
|
], {
|
|
A: '#forge:double_plates/wrought_iron',
|
|
B: 'tfc:crucible'
|
|
}).id('tfc:crafting/blast_furnace')
|
|
|
|
event.recipes.gtceu.macerator('recycle_tfc_blast_furnace')
|
|
.itemInputs('tfc:blast_furnace')
|
|
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, GTMaterials.WroughtIron, 16))
|
|
.duration(GTMaterials.WroughtIron.getMass() * 16)
|
|
.EUt(GTValues.VA[GTValues.ULV])
|
|
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
|
|
|
event.recipes.gtceu.arc_furnace('recycle_tfc_blast_furnace')
|
|
.itemInputs('tfc:blast_furnace')
|
|
.itemOutputs(ChemicalHelper.get(TagPrefix.ingot, GTMaterials.WroughtIron, 16))
|
|
.duration(GTMaterials.WroughtIron.getMass() * 16)
|
|
.EUt(GTValues.VA[GTValues.LV])
|
|
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
|
|
|
|
// Тыква -> Кусочки тыквы
|
|
event.recipes.tfc.advanced_shapeless_crafting(
|
|
TFC.itemStackProvider.of('5x tfc:food/pumpkin_chunks').copyFood(),
|
|
[TFC.ingredient.notRotten('tfc:pumpkin'), '#forge:tools/hammers'], 'tfc:pumpkin')
|
|
.id(`tfc:crafting/pumpkin_chunks_hammer`)
|
|
|
|
event.recipes.tfc.advanced_shapeless_crafting(
|
|
TFC.itemStackProvider.of('5x tfc:food/pumpkin_chunks').copyFood(),
|
|
[TFC.ingredient.notRotten('tfc:pumpkin'), '#tfc:knives'], 'tfc:pumpkin')
|
|
.id(`tfc:crafting/pumpkin_chunks_knife`)
|
|
|
|
// Lime
|
|
event.smelting('tfc:powder/lime', 'tfc:powder/flux')
|
|
.id('tfg:smelting/lime')
|
|
|
|
// Kaolinite Clay
|
|
event.smelting('tfc:powder/kaolinite', 'tfc:kaolin_clay')
|
|
.id('tfg:smelting/kaolinite_clay')
|
|
|
|
// Fire Brick
|
|
event.recipes.gtceu.alloy_smelter('tfg:cheaper_fire_brick')
|
|
.itemInputs('#forge:dusts/graphite', 'tfc:kaolin_clay')
|
|
.itemOutputs('tfc:fire_clay')
|
|
.duration(600)
|
|
.EUt(GTValues.VA[GTValues.ULV])
|
|
|
|
event.recipes.gtceu.alloy_smelter('tfg:oops_i_smelted_all_my_kaolin')
|
|
.itemInputs('5x minecraft:clay_ball', 'tfc:powder/kaolinite')
|
|
.itemOutputs('5x tfc:kaolin_clay')
|
|
.duration(600)
|
|
.EUt(GTValues.VA[GTValues.ULV])
|
|
|
|
// Выпаривание соли
|
|
event.recipes.tfc.pot([], Fluid.of('tfc:salt_water', 625), 300, 100)
|
|
.itemOutput('gtceu:small_salt_dust')
|
|
.id('tfg:tfc/pot/salt')
|
|
|
|
// Salt Water
|
|
generateMixerRecipe(event, ['#forge:dusts/salt'], Fluid.of('minecraft:water', 1000), [], null, Fluid.of('tfc:salt_water', 1000), 40, 7, 64, 'tfg:tfc/salt_water')
|
|
|
|
|
|
// Seaweed and kelp
|
|
event.recipes.tfc.heating('tfc:groundcover/seaweed', 200)
|
|
.resultItem('tfc:food/dried_seaweed')
|
|
event.recipes.tfc.heating('tfc:plant/leafy_kelp', 200)
|
|
.resultItem('tfc:food/dried_kelp')
|
|
event.recipes.tfc.heating('tfc:plant/winged_kelp', 200)
|
|
.resultItem('tfc:food/dried_kelp')
|
|
|
|
// Soda Ash
|
|
event.smelting('3x tfc:powder/soda_ash', 'tfc:food/dried_seaweed').id('tfg:smelting/dried_seaweed_to_soda')
|
|
event.smelting('3x tfc:powder/soda_ash', 'tfc:food/dried_kelp').id('tfg:smelting/dried_kelp_to_soda')
|
|
|
|
//#region Обрушения
|
|
|
|
event.recipes.tfc.collapse('#tfg:rock_slabs').id('tfg:collapse/rock_slabs')
|
|
event.recipes.tfc.collapse('#tfg:rock_stairs').id('tfg:collapse/rock_stairs')
|
|
event.recipes.tfc.collapse('#tfg:rock_walls').id('tfg:collapse/rock_walls')
|
|
|
|
//#endregion
|
|
|
|
//More accesible solar drier
|
|
event.replaceInput({ id: 'firmalife:crafting/solar_drier' }, 'gtceu:stainless_steel_rod', 'gtceu:silver_rod')
|
|
|
|
//Wood ash
|
|
event.recipes.create.splashing([Item.of('tfc:powder/wood_ash').withChance(0.25), Item.of('minecraft:stick').withChance(0.25)], 'tfc:torch')
|
|
.id('tfg:splashing/wash_torch')
|
|
|
|
//Lye in mixer
|
|
generateMixerRecipe(event, 'tfc:powder/wood_ash', Fluid.of('minecraft:water', 200), [], null, Fluid.of('tfc:lye', 200), 100, 2, 64, 'lye_in_mixer')
|
|
|
|
// Brass Mechanism
|
|
event.recipes.shapeless('gtceu:small_brass_gear', [ 'tfc:brass_mechanisms' ]).id('tfg:replace_brass_mechanisms')
|
|
event.replaceInput({ input: 'tfc:brass_mechanisms' }, 'tfc:brass_mechanisms', 'gtceu:small_brass_gear')
|
|
|
|
// Fertilizers
|
|
event.recipes.gtceu.centrifuge('tfg:gtceu/centrifuge/pure_fertilizers')
|
|
.itemInputs('1x gtceu:fertilizer')
|
|
.itemOutputs('1x tfc:pure_nitrogen', '1x tfc:pure_potassium', '1x tfc:pure_phosphorus')
|
|
.duration(340)
|
|
.EUt(GTValues.VA[GTValues.ULV])
|
|
|
|
event.recipes.gtceu.mixer('tfg:tfc/mixer/fertilizer')
|
|
.itemInputs('1x tfc:pure_nitrogen', '1x tfc:pure_potassium', '1x tfc:pure_phosphorus', ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Clay, 1))
|
|
.itemOutputs('1x gtceu:fertilizer')
|
|
.duration(160)
|
|
.EUt(GTValues.VA[GTValues.ULV])
|
|
|
|
//Hide Sewing
|
|
const stages = [
|
|
'raw',
|
|
'soaked',
|
|
'scraped',
|
|
'prepared',
|
|
'sheepskin'
|
|
];
|
|
|
|
const sizes = [
|
|
'small',
|
|
'medium',
|
|
'large'
|
|
];
|
|
|
|
stages.forEach((stage) => {
|
|
sizes.forEach((size, index) => {
|
|
// Find the next larger size.
|
|
const nextLarger = sizes[index + 1];
|
|
|
|
// If a larger size exists, sew the hides together.
|
|
if (nextLarger) {
|
|
event.recipes.tfc.damage_inputs_shapeless_crafting(
|
|
event.shapeless(`1x tfc:${nextLarger}_${stage}_hide`, [
|
|
`2x tfc:${size}_${stage}_hide`,
|
|
'#tfc:sewing_needles',
|
|
'#forge:string',
|
|
'tfc:glue'
|
|
]).id(`tfg:tfc/${size}_to_${nextLarger}_${stage}_hide`)
|
|
)
|
|
|
|
event.recipes.gtceu.assembler(`tfg:gtceu/assembler/${size}_to_${nextLarger}_${stage}_hide`)
|
|
.inputFluids(Fluid.of('gtceu:glue', 25))
|
|
.itemOutputs(`1x tfc:${nextLarger}_${stage}_hide`)
|
|
.itemInputs(`2x tfc:${size}_${stage}_hide`)
|
|
.duration(60)
|
|
.circuit(7)
|
|
.EUt(GTValues.VA[GTValues.ULV])
|
|
}
|
|
|
|
// Find the next smaller size.
|
|
const nextSmaller = sizes[index - 1];
|
|
|
|
// If a smaller size exists, cut the hide.
|
|
if (nextSmaller) {
|
|
event.recipes.tfc.damage_inputs_shapeless_crafting(
|
|
event.shapeless(`2x tfc:${nextSmaller}_${stage}_hide`, [
|
|
`1x tfc:${size}_${stage}_hide`,
|
|
'#forge:shears'
|
|
]).id(`tfg:tfc/${size}_to_${nextSmaller}_${stage}_hide`)
|
|
)
|
|
|
|
event.recipes.gtceu.assembler(`tfg:gtceu/assembler/${size}_to_${nextSmaller}_${stage}_hide`)
|
|
.itemOutputs(`2x tfc:${nextSmaller}_${stage}_hide`)
|
|
.itemInputs(`1x tfc:${size}_${stage}_hide`)
|
|
.duration(60)
|
|
.circuit(4)
|
|
.EUt(GTValues.VA[GTValues.ULV])
|
|
}
|
|
});
|
|
});
|
|
}
|