From 0d64c4df4f5367a9983567d195724cbf5842bd74 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Fri, 30 Jan 2026 00:47:38 +0000 Subject: [PATCH] #2876 --- CHANGELOG.md | 2 + kubejs/server_scripts/create/recipes.js | 19 ++++--- .../tfg/natural_blocks/recipes.rocks.js | 54 ++++++++++++++++++- .../server_scripts/tfg/recipes.temporary.js | 2 +- 4 files changed, 69 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e27d4714..05d2891c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,8 @@ - Deserts now contain oil spouts for heavy, raw, light, and normal oils @Pyritie - Oilsands veins are now smaller across most of the world, except the huge ones have been moved to the desert @Pyritie - Some volcanoes should now have much bigger amounts of lava underneath them, for more lava needs, but also infinite obsidian via the rock breaker has been removed. (Use a fluid solidifier instead) @Pyritie +- Added manual/automated sanding recipes for making smooth stone (#2876) @Pyritie +- Added deployer recipes for all the in-world block modification recipes (#2876) @Pyritie ### Bug fixes - Fixed large miners not outputting crushed ore when mining Migmatite @Pyritie - Fixed red granite ores never dropping poor or rich raw ores @Pyritie diff --git a/kubejs/server_scripts/create/recipes.js b/kubejs/server_scripts/create/recipes.js index 864673961..9dfed7c04 100644 --- a/kubejs/server_scripts/create/recipes.js +++ b/kubejs/server_scripts/create/recipes.js @@ -58,7 +58,10 @@ const registerCreateRecipes = (event) => { // Remove Table Cloth recipes global.MINECRAFT_DYE_NAMES.forEach(dye => { - event.remove([{ id: `create:crafting/logistics/${dye}_table_cloth` }, { id: `create:crafting/logistics/${dye}_table_cloth_from_other_table_cloth` }]) + event.remove([ + { id: `create:crafting/logistics/${dye}_table_cloth` }, + { id: `create:crafting/logistics/${dye}_table_cloth_from_other_table_cloth` } + ]) }) event.remove({ type: 'minecraft:stonecutting', input: 'create:andesite_alloy' }) @@ -1412,17 +1415,21 @@ const registerCreateRecipes = (event) => { event.remove({ id: `create:create.toolbox.color.block.create.${dye}_toolbox` }) event.recipes.tfc.barrel_sealed(1000) - .inputs('create:brown_toolbox', Fluid.of(`tfc:${dye}_dye`, 288)) - .outputItem(`create:${dye}_toolbox`) + .inputs('#create:toolboxes', Fluid.of(`tfc:${dye}_dye`, 288)) + .outputItem(TFC.isp.of(`create:${dye}_toolbox`).simpleModifier('tfg:copy_nbt').asCanonClass()) .id(`barrel/create/${dye}_toolbox`) - event.recipes.gtceu.chemical_bath(`create/${dye}_toolbox`) - .itemInputs('create:brown_toolbox') + event.recipes.gtceu.food_processor(`create/${dye}_toolbox`) + .itemInputs('#create:toolboxes') .inputFluids(Fluid.of(`tfc:${dye}_dye`, 288)) .itemOutputs(`create:${dye}_toolbox`) .duration(200) .EUt(4) - .category(GTRecipeCategories.CHEM_DYES) + + $ISPRecipeLogic.RegisterRecipeData(`food_processor/create/${dye}_toolbox`, + [Ingredient.of('#create:toolboxes')], + TFC.isp.of(`create:${dye}_toolbox`).simpleModifier('tfg:copy_nbt').asCanonClass(), + []) } }) diff --git a/kubejs/server_scripts/tfg/natural_blocks/recipes.rocks.js b/kubejs/server_scripts/tfg/natural_blocks/recipes.rocks.js index a3be60a35..262c47dd9 100644 --- a/kubejs/server_scripts/tfg/natural_blocks/recipes.rocks.js +++ b/kubejs/server_scripts/tfg/natural_blocks/recipes.rocks.js @@ -198,13 +198,22 @@ function registerTFGRockRecipes(event) { // Cobble to mossy cobble if (rock.cobble != null && rock.cobble.mossy != null) { - event.recipes.gtceu.mixer(`tfg:${rockId}_cobble_rocks_to_mossy_cobble`) + event.recipes.gtceu.mixer(`tfg:${rockId}_cobble_to_mossy_cobble`) .itemInputs(rock.cobble.block, '#tfc:compost_greens_low') .circuit(1) .inputFluids("#tfg:clean_water 144") .itemOutputs(rock.cobble.mossy.block) .duration(50) .EUt(2) + + event.recipes.create.deploying(rock.cobble.mossy.block, [ rock.cobble.block, '#tfc:compost_greens_low' ]) + .id(`tfg:deploying/${rockId}_cobble_to_mossy_cobble`) + + event.recipes.create.deploying(rock.cobble.block, [ rock.cobble.mossy.block, 'tfc:groundcover/pumice' ]) + .id(`tfg:deploying/${rockId}_mossy_cobble_to_cobble_pumice`) + + event.recipes.create.deploying(rock.cobble.block, [ rock.cobble.mossy.block, '#forge:tools/knives' ]) + .id(`tfg:deploying/${rockId}_mossy_cobble_to_cobble_knife`) } // Bricks to brick blocks @@ -227,6 +236,20 @@ function registerTFGRockRecipes(event) { .circuit(1) .duration(50) .EUt(2) + + event.recipes.create.sequenced_assembly(`4x ${rock.bricks.block}`, rock.brick, [ + event.recipes.create.deploying(rock.brick, [rock.brick, rock.brick]), + event.recipes.create.deploying(rock.brick, [rock.brick, 'tfc:mortar']) + ]) + .transitionalItem(rock.brick) + .loops(4) + .id(`tfg:deploying/${rockId}_brick_to_bricks`) + } + + // Bricks to smooth + if (rock.bricks != null && rock.polished != null) { + event.recipes.create.sandpaper_polishing(rock.polished.block, rock.bricks.block) + .id(`tfg:polishing/${rockId}_brick_to_polished`) } // Bricks to mossy bricks @@ -238,8 +261,24 @@ function registerTFGRockRecipes(event) { .itemOutputs(rock.bricks.mossy.block) .duration(50) .EUt(2) + + event.recipes.create.deploying(rock.bricks.mossy.block, [ rock.bricks.block, '#tfc:compost_greens_low' ]) + .id(`tfg:deploying/${rockId}_bricks_to_mossy_bricks`) + + event.recipes.create.deploying(rock.bricks.block, [ rock.bricks.mossy.block, 'tfc:groundcover/pumice' ]) + .id(`tfg:deploying/${rockId}_mossy_bricks_to_bricks_pumice`) + + event.recipes.create.deploying(rock.bricks.block, [ rock.bricks.mossy.block, '#forge:tools/knives' ]) + .id(`tfg:deploying/${rockId}_mossy_bricks_to_bricks_knife`) + + // Mossy bricks to smooth + if (rock.bricks.mossy != null && rock.polished != null) { + event.recipes.create.sandpaper_polishing(rock.polished.block, rock.bricks.mossy.block) + .id(`tfg:polishing/${rockId}_mossy_brick_to_polished`) + } } + // Bricks to cracked bricks if (rock.bricks != null && rock.bricks.cracked != null) { if (!rock.isTFC) { @@ -258,8 +297,18 @@ function registerTFGRockRecipes(event) { event.recipes.greate.pressing(rock.bricks.cracked.block, rock.bricks.block) .recipeTier(0) .id(`tfg:pressing/${rockId}_bricks_to_cracked`); + + event.recipes.create.deploying(rock.bricks.block, [ rock.bricks.cracked.block, 'tfc:mortar' ]) + .id(`tfg:deploying/${rockId}_cracked_bricks_to_bricks`) + + // Cracked bricks to smooth + if (rock.bricks.cracked != null && rock.polished != null) { + event.recipes.create.sandpaper_polishing(rock.polished.block, rock.bricks.cracked.block) + .id(`tfg:polishing/${rockId}_cracked_brick_to_polished`) + } } + // Raw to polished if (rock.raw != null && rock.polished != null) { rawToPolished(`${rockId}_raw_to_polished`, !rock.isTFC, rock.raw.block, rock.polished.block); @@ -271,6 +320,9 @@ function registerTFGRockRecipes(event) { .itemOutputs(`8x ${rock.polished.block}`) .duration(250) .EUt(8) + + event.recipes.create.sandpaper_polishing(rock.polished.block, rock.raw.block) + .id(`tfg:polishing/${rockId}_raw_to_polished`) } if (rock.hardened != null && rock.polished != null) { diff --git a/kubejs/server_scripts/tfg/recipes.temporary.js b/kubejs/server_scripts/tfg/recipes.temporary.js index b59260605..68d907bd4 100644 --- a/kubejs/server_scripts/tfg/recipes.temporary.js +++ b/kubejs/server_scripts/tfg/recipes.temporary.js @@ -35,7 +35,7 @@ function registerTFGTemporaryRecipes(event) { event.shapeless('tfg:metamorphic_dust', 'gtceu:marble_dust') event.shapeless('tfg:metamorphic_dust', 'gtceu:deepslate_dust') event.shapeless('tfg:igneous_ultramafic_dust', 'gtceu:blackstone_dust') - event.shapeless('tfg:igneous_felsic_dust', 'gtceu:red_granite_dust') + event.shapeless('tfg:igneous_felsic_dust', 'gtceu:granite_red_dust') event.shapeless('tfg:igneous_mafic_dust', 'gtceu:basalt_dust') // TODO: remove nether/ender air in 0.12