From 21e9f7f49ccd890760962795e9971dfd0b1d5c74 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Sat, 27 Dec 2025 00:09:33 +0000 Subject: [PATCH] actual working sealed barrel recipes for developing film --- CHANGELOG.md | 2 + .../assets/emi/recipe/filters/categories.json | 3 + kubejs/server_scripts/create/tags.js | 2 +- kubejs/server_scripts/exposure/recipes.js | 225 +++++++++--------- kubejs/server_scripts/gregtech/recipes.js | 16 +- .../tfc/item_stack_modifiers.js | 8 + 6 files changed, 143 insertions(+), 113 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 762a0227b..9b7423bf8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,8 @@ - Added quern recipes for gems into dust @Pyritie - Added recipes for smoke bombs, pet treats, and disguise kits, and added swapper pearls to the loot tables of various endermen @Pyritie - Added a little saltpeter to cassiterite veins @Pyritie +- Removed the cleanroom requirement for level emitters since they were also craftable in a crafting grid (#2529) @Jeuvke +- Added recipes for developing film in sealed barrels @Pyritie ### Bug fixes - Fix for food stacking everywhere! @Mqrius - Fixed the grappling hook crashing and sending you to the void if you use it while travelling between dimensions (#2514) @Mqrius diff --git a/kubejs/assets/emi/recipe/filters/categories.json b/kubejs/assets/emi/recipe/filters/categories.json index 3a5b4e82e..3efe1f4e2 100644 --- a/kubejs/assets/emi/recipe/filters/categories.json +++ b/kubejs/assets/emi/recipe/filters/categories.json @@ -84,6 +84,9 @@ { "id": "toomanyrecipeviewers:/create/potions" }, + { + "id": "toomanyrecipeviewers:/exposure/sequenced_color_film_developing" + }, { "id": "/gtceu.+potion_.+/" }, diff --git a/kubejs/server_scripts/create/tags.js b/kubejs/server_scripts/create/tags.js index c2eb91a4b..704c76b11 100644 --- a/kubejs/server_scripts/create/tags.js +++ b/kubejs/server_scripts/create/tags.js @@ -183,7 +183,7 @@ const registerCreateFluidTags = (event) => { event.add('c:hidden_from_recipe_viewers', 'create:chocolate') event.add('c:hidden_from_recipe_viewers', 'create:honey') event.add('c:hidden_from_recipe_viewers', 'create:builders_tea') - event.add('c:hidden_from_recipe_viewers', 'create:uncraftable_potion') + event.add('c:hidden_from_recipe_viewers', 'create:potion') // Disable bulk blasting event.removeAll('create:fan_processing_catalysts/blasting') diff --git a/kubejs/server_scripts/exposure/recipes.js b/kubejs/server_scripts/exposure/recipes.js index 9b2505895..5e326c624 100644 --- a/kubejs/server_scripts/exposure/recipes.js +++ b/kubejs/server_scripts/exposure/recipes.js @@ -3,124 +3,127 @@ const registerExposureRecipes = (event) => { - event.remove({ id: 'exposure:sequenced_color_film_developing' }) - - // Lightroom - event.shaped('exposure:lightroom', [ - 'AB', - 'CC', - 'CC' - ], { - A: '#tfc:lamps', - B: 'minecraft:redstone_torch', - C: '#minecraft:planks' - }).id('exposure:lightroom') + event.remove({ id: 'exposure:sequenced_color_film_developing' }) - // Camera - event.shaped('exposure:camera', [ - 'ABC', - 'DED', - 'FDF' - ], { - A: 'minecraft:lever', - B: 'gtceu:wrought_iron_gear', - C: '#minecraft:wooden_buttons', - D: '#forge:plates/wrought_iron', - E: 'tfc:lens', - F: '#forge:screws/wrought_iron' - }).id('exposure:camera') + // Lightroom + event.shaped('exposure:lightroom', [ + 'AB', + 'CC', + 'CC' + ], { + A: '#tfc:lamps', + B: 'minecraft:redstone_torch', + C: '#minecraft:planks' + }).id('exposure:lightroom') - // Album - event.shapeless('exposure:album', [ - 'minecraft:writable_book', 'minecraft:paper', 'minecraft:paper' - ]).id('exposure:album') + // Camera + event.shaped('exposure:camera', [ + 'ABC', + 'DED', + 'FDF' + ], { + A: 'minecraft:lever', + B: 'gtceu:wrought_iron_gear', + C: '#minecraft:wooden_buttons', + D: '#forge:plates/wrought_iron', + E: 'tfc:lens', + F: '#forge:screws/wrought_iron' + }).id('exposure:camera') - // Black and White Film - event.shaped('exposure:black_and_white_film', [ - 'ABB', - 'CDD', - 'CEE' - ], { - A: '#forge:rings/wrought_iron', - B: '#forge:dyes/white', - C: '#forge:foils/wrought_iron', - D: '#forge:dusts/gunpowder', - E: 'tfc:food/dried_kelp', - }).id('exposure:black_and_white_film') + // Album + event.shapeless('exposure:album', [ + 'minecraft:writable_book', 'minecraft:paper', 'minecraft:paper' + ]).id('exposure:album') - // Colored Film - event.shaped('exposure:color_film', [ - 'ABB', - 'CDD', - 'CEE' - ], { - A: '#forge:rings/wrought_iron', - B: '#forge:dyes/blue', - C: '#forge:foils/wrought_iron', - D: '#forge:foils/gold', - E: 'tfc:food/dried_kelp', - }).id('exposure:color_film') + // Black and White Film + event.shaped('exposure:black_and_white_film', [ + 'ABB', + 'CDD', + 'CEE' + ], { + A: '#forge:rings/wrought_iron', + B: '#forge:dyes/white', + C: '#forge:foils/wrought_iron', + D: '#forge:dusts/gunpowder', + E: 'tfc:food/dried_kelp', + }).id('exposure:black_and_white_film') - event.recipes.createSequencedAssembly([ - 'exposure:developed_color_film', - ], 'exposure:color_film', [ - event.recipes.createFilling('exposure:color_film', ['exposure:color_film', Fluid.of('tfc:spring_water', 50)]), - ]).transitionalItem('exposure:color_film').loops(1).id('tfg:color_film_developing') + event.recipes.tfc.barrel_sealed(8000) + .inputs('exposure:black_and_white_film', Fluid.of('minecraft:water', 250)) + .outputItem(TFC.isp.of('exposure:developed_black_and_white_film').simpleModifier('tfg:copy_nbt')) + .id('tfg:develop_black_and_white_film') + // Colored Film + event.shaped('exposure:color_film', [ + 'ABB', + 'CDD', + 'CEE' + ], { + A: '#forge:rings/wrought_iron', + B: '#forge:dyes/blue', + C: '#forge:foils/wrought_iron', + D: '#forge:foils/gold', + E: 'tfc:food/dried_kelp', + }).id('exposure:color_film') - // Developed Black and White Film - event.custom({ - type: "exposure:film_developing", - film: { - item: "exposure:black_and_white_film" - }, - ingredients: [ - { - type: "tfc:fluid_item", - fluid_ingredient: { - ingredient: "minecraft:water", - amount: 1000 - } - }, - ], - result: { - item: "exposure:developed_black_and_white_film" - } - }).id('exposure:developing_black_and_white_film') + event.recipes.tfc.barrel_sealed(8000) + .inputs('exposure:color_film', Fluid.of('tfc:spring_water', 250)) + .outputItem(TFC.isp.of('exposure:developed_color_film').simpleModifier('tfg:copy_nbt')) + .id('tfg:develop_color_film') - // Developed Color Film - event.custom({ - type: "exposure:film_developing", - film: { - item: "exposure:color_film" - }, - ingredients: [ - { - type: "tfc:fluid_item", - fluid_ingredient: { - ingredient: "minecraft:water", - amount: 1000 - } - }, - { - type: "tfc:fluid_item", - fluid_ingredient: { - ingredient: "minecraft:water", - amount: 1000 - } - }, - { - type: "tfc:fluid_item", - fluid_ingredient: { - ingredient: "minecraft:water", - amount: 1000 - } - }, - ], - result: { - item: "exposure:developed_color_film" - } - }).id('exposure:developing_color_film') + // Developed Black and White Film + event.custom({ + type: "exposure:film_developing", + film: { + item: "exposure:black_and_white_film" + }, + ingredients: [ + { + type: "tfc:fluid_item", + fluid_ingredient: { + ingredient: "minecraft:water", + amount: 1000 + } + }, + ], + result: { + item: "exposure:developed_black_and_white_film" + } + }).id('exposure:developing_black_and_white_film') - event.replaceInput({id: 'exposure:interplanar_projector'}, 'minecraft:ender_eye', '#forge:plates/silver') + // Developed Color Film + event.custom({ + type: "exposure:film_developing", + film: { + item: "exposure:color_film" + }, + ingredients: [ + { + type: "tfc:fluid_item", + fluid_ingredient: { + ingredient: "tfc:spring_water", + amount: 1000 + } + }, + { + type: "tfc:fluid_item", + fluid_ingredient: { + ingredient: "tfc:spring_water", + amount: 1000 + } + }, + { + type: "tfc:fluid_item", + fluid_ingredient: { + ingredient: "tfc:spring_water", + amount: 1000 + } + }, + ], + result: { + item: "exposure:developed_color_film" + } + }).id('exposure:developing_color_film') + + event.replaceInput({ id: 'exposure:interplanar_projector' }, 'minecraft:ender_eye', '#forge:foils/silver') } \ No newline at end of file diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index 1e9035862..950e45fe6 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -367,6 +367,20 @@ const registerGTCEURecipes = (event) => { .EUt(GTValues.VA[GTValues.UV]) - event.replaceInput( {output: 'gtceu:nano_saber'}, 'gtceu:ruridit_plate', '#forge:plates/ostrum_iodide' ) + event.replaceInput({ output: 'gtceu:nano_saber' }, 'gtceu:ruridit_plate', '#forge:plates/ostrum_iodide') + + // Intentionally long to encourage reuse instead of mindlessly creating and distilling + event.recipes.gtceu.mixer('tfg:diluted_hcl_acid') + .inputFluids(Fluid.of('gtceu:hydrochloric_acid', 1000), Fluid.of('minecraft:water')) + .outputFluids(Fluid.of('gtceu:diluted_hydrochloric_acid', 2000)) + .duration(30 * 20) + .EUt(GTValues.VA[GTValues.LV]) + + + event.recipes.gtceu.mixer('tfg:diluted_sulf_acid') + .inputFluids(Fluid.of('gtceu:sulfuric_acid', 2000), Fluid.of('minecraft:water')) + .outputFluids(Fluid.of('gtceu:diluted_sulfuric_acid', 3000)) + .duration(30 * 20) + .EUt(GTValues.VA[GTValues.LV]) } diff --git a/kubejs/startup_scripts/tfc/item_stack_modifiers.js b/kubejs/startup_scripts/tfc/item_stack_modifiers.js index 8dfb811fe..713bcfab2 100644 --- a/kubejs/startup_scripts/tfc/item_stack_modifiers.js +++ b/kubejs/startup_scripts/tfc/item_stack_modifiers.js @@ -7,4 +7,12 @@ TFCEvents.registerItemStackModifier(event => { TFC.misc.getFood(output).setBowl(input) return output; }); + + event.withInput('tfg:copy_nbt', (output, input) => { + let { nbt } = input + if (nbt) { + output.orCreateTag.merge(nbt) + } + return output + }) }) \ No newline at end of file