From b0b6fcbb100e5cbe8ba4a7a1e3e32da615ae64d7 Mon Sep 17 00:00:00 2001 From: Spicy Noodles <93035068+SpicyNoodle5@users.noreply.github.com> Date: Sun, 15 Mar 2026 18:13:12 +0000 Subject: [PATCH] Add aircraft assembler recipes (#3410) --- .../quests/chapters/tips__transportation.snbt | 20 ++- kubejs/server_scripts/gregtech/tags.js | 3 + .../immersive_aircraft/recipes.js | 141 +++++++++++++++++- 3 files changed, 154 insertions(+), 10 deletions(-) diff --git a/config/ftbquests/quests/chapters/tips__transportation.snbt b/config/ftbquests/quests/chapters/tips__transportation.snbt index 0d8a1a5f3..b031d0b11 100644 --- a/config/ftbquests/quests/chapters/tips__transportation.snbt +++ b/config/ftbquests/quests/chapters/tips__transportation.snbt @@ -1158,11 +1158,6 @@ shape: "heart" subtitle: "{quests.tfg_tips.aircraft_upgrades.subtitle}" tasks: [ - { - id: "6DF2BE113934991F" - item: "immersive_aircraft:gyroscope" - type: "item" - } { id: "3825ED5E282B43EB" item: "immersive_aircraft:sturdy_pipes" @@ -1178,6 +1173,21 @@ item: "immersive_aircraft:eco_engine" type: "item" } + { + id: "6DF2BE113934991F" + item: "immersive_aircraft:gyroscope" + type: "item" + } + { + id: "7C1F239C4E82212D" + item: "immersive_aircraft:gyroscope_dials" + type: "item" + } + { + id: "0AD1785F4FAFE3CB" + item: "immersive_aircraft:gyroscope_hud" + type: "item" + } ] title: "{quests.tfg_tips.aircraft_upgrades.title}" x: 17.5d diff --git a/kubejs/server_scripts/gregtech/tags.js b/kubejs/server_scripts/gregtech/tags.js index a0ec4e1b0..c976129e4 100644 --- a/kubejs/server_scripts/gregtech/tags.js +++ b/kubejs/server_scripts/gregtech/tags.js @@ -75,6 +75,9 @@ function registerGTCEUItemTags(event) { event.add('gtceu:lamps', `gtceu:${color}_lamp`) event.add('gtceu:lamps', `gtceu:${color}_borderless_lamp`) }) + + // any rubber plate + event.add('tfg:rubber_plates', '#forge:plates/rubber', '#forge:plates/silicone_rubber', '#forge:plates/styrene_butadiene_rubber') } /** @param {TagEvent.Block} event */ diff --git a/kubejs/server_scripts/immersive_aircraft/recipes.js b/kubejs/server_scripts/immersive_aircraft/recipes.js index 5a43cf333..25ac8d19b 100644 --- a/kubejs/server_scripts/immersive_aircraft/recipes.js +++ b/kubejs/server_scripts/immersive_aircraft/recipes.js @@ -116,6 +116,12 @@ function registerImmersiveAircraftRecipes(event) { E: 'create:andesite_casing' }).id('tfg:immersive_aircraft/shaped/engine'); + event.recipes.gtceu.assembler('tfg:immersive_aircraft/assembler/engine') + .itemInputs('gtceu:tin_alloy_small_fluid_pipe', 'create:andesite_casing', '2x #tfg:metal_bars') + .itemOutputs('immersive_aircraft:engine') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) + event.shaped('immersive_aircraft:sail', [ 'ABA', 'BCB', @@ -194,6 +200,12 @@ function registerImmersiveAircraftRecipes(event) { E: '#forge:tools/screwdrivers', }).id('tfg:immersive_aircraft/shaped/sturdy_pipes') + event.recipes.gtceu.assembler('tfg:immersive_aircraft/assembler/sturdy_pipes') + .itemInputs('gtceu:red_steel_plate', 'gtceu:blue_steel_plate', '3x #forge:small_fluid_pipes', '2x gtceu:black_steel_screw') + .itemOutputs('immersive_aircraft:sturdy_pipes') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) + event.shaped('immersive_aircraft:gyroscope', [ 'ABC', 'DED', @@ -208,6 +220,12 @@ function registerImmersiveAircraftRecipes(event) { G: '#forge:tools/screwdrivers' }).id('tfg:immersive_aircraft/shaped/gyroscope') + event.recipes.gtceu.assembler('tfg:immersive_aircraft/assembler/gyroscope') + .itemInputs('create:precision_mechanism', 'firmaciv:firmaciv_compass', '#forge:gems/quartzite', '3x gtceu:small_brass_gear', '#forge:screws/blue_steel') + .itemOutputs('immersive_aircraft:gyroscope') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) + event.shaped('immersive_aircraft:gyroscope_dials', [ 'ABC', 'DED', @@ -222,6 +240,12 @@ function registerImmersiveAircraftRecipes(event) { G: '#forge:tools/screwdrivers' }).id('tfg:immersive_aircraft/shaped/gyroscope_dials') + event.recipes.gtceu.assembler('tfg:immersive_aircraft/assembler/gyroscope_dials') + .itemInputs('immersive_aircraft:gyroscope', 'gtceu:lv_sensor', '#gtceu:circuits/lv', '3x gtceu:small_aluminium_gear', '#forge:screws/vanadium_steel') + .itemOutputs('immersive_aircraft:gyroscope_dials') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) + event.shaped('immersive_aircraft:gyroscope_hud', [ 'ABC', 'DED', @@ -236,6 +260,12 @@ function registerImmersiveAircraftRecipes(event) { G: '#forge:tools/screwdrivers' }).id('tfg:immersive_aircraft/shaped/gyroscope_hud') + event.recipes.gtceu.assembler('tfg:immersive_aircraft/assembler/gyroscope_hud') + .itemInputs('immersive_aircraft:gyroscope_dials', 'gtceu:mv_sensor', '3x #gtceu:circuits/mv', 'gtceu:computer_monitor_cover', '#forge:screws/stainless_steel') + .itemOutputs('immersive_aircraft:gyroscope_hud') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) + event.shaped('tfg:black_steel_plated_airplane_propeller', [ 'CA ', 'ABA', @@ -247,6 +277,12 @@ function registerImmersiveAircraftRecipes(event) { D: '#forge:tools/wrenches' }).id('tfg:shaped/black_steel_plated_airplane_propeller'); + event.recipes.gtceu.assembler('tfg:assembler/black_steel_plated_airplane_propeller') + .itemInputs('#forge:rotors', '4x gtceu:black_steel_plate') + .itemOutputs('tfg:black_steel_plated_airplane_propeller') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) + generateRecyclingRecipe('tfg:recycling/black_steel_plated_airplane_propeller', createRecyclingRecipeArgs('tfg:black_steel_plated_airplane_propeller', [GTMaterials.BlackSteel], [createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3)])) @@ -262,6 +298,12 @@ function registerImmersiveAircraftRecipes(event) { F: '#forge:tools/wrenches' }).id('tfg:shaped/redblu_steel_plated_airplane_propeller'); + event.recipes.gtceu.assembler('tfg:assembler/redblu_steel_plated_airplane_propeller') + .itemInputs('#forge:rotors', '2x gtceu:red_steel_plate', '2x gtceu:blue_steel_plate') + .itemOutputs('tfg:redblu_steel_plated_airplane_propeller') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) + generateRecyclingRecipe('tfg:recycling/redblu_steel_plated_airplane_propeller', createRecyclingRecipeArgs('tfg:redblu_steel_plated_airplane_propeller', [ GTMaterials.RedSteel, @@ -283,6 +325,12 @@ function registerImmersiveAircraftRecipes(event) { D: '#forge:tools/wrenches' }).id('tfg:immersive_aircraft/shaped/enhanced_propeller'); + event.recipes.gtceu.assembler('tfg:immersive_aircraft/assembler/enhanced_propeller') + .itemInputs('#forge:rotors', '4x vintageimprovements:aluminum_sheet') + .itemOutputs('immersive_aircraft:enhanced_propeller') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) + generateRecyclingRecipe('immersive_aircraft:recycling/enhanced_propeller', createRecyclingRecipeArgs('immersive_aircraft:enhanced_propeller', [GTMaterials.Aluminium], [createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3)])) @@ -297,6 +345,12 @@ function registerImmersiveAircraftRecipes(event) { D: '#forge:tools/wrenches' }).id('tfg:shaped/stainless_steel_plated_airplane_propeller'); + event.recipes.gtceu.assembler('tfg:assembler/stainless_steel_plated_airplane_propeller') + .itemInputs('#forge:rotors', '4x gtceu:stainless_steel_plate') + .itemOutputs('tfg:stainless_steel_plated_airplane_propeller') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) + generateRecyclingRecipe('tfg:recycling/stainless_steel_plated_airplane_propeller', createRecyclingRecipeArgs('tfg:stainless_steel_plated_airplane_propeller', [GTMaterials.StainlessSteel], [createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3)])) @@ -311,6 +365,12 @@ function registerImmersiveAircraftRecipes(event) { D: '#forge:tools/wrenches' }).id('tfg:shaped/titanium_plated_airplane_propeller'); + event.recipes.gtceu.assembler('tfg:assembler/titanium_plated_airplane_propeller') + .itemInputs('#forge:rotors', '4x gtceu:titanium_plate') + .itemOutputs('tfg:titanium_plated_airplane_propeller') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) + generateRecyclingRecipe('tfg:recycling/titanium_plated_airplane_propeller', createRecyclingRecipeArgs('tfg:titanium_plated_airplane_propeller', [GTMaterials.Titanium], [createMaterialsToResults(TagPrefix.dust, TagPrefix.ingot, 3)])) @@ -326,6 +386,12 @@ function registerImmersiveAircraftRecipes(event) { E: 'gtceu:double_sterling_silver_plate' }).id('tfg:immersive_aircraft/shaped/eco_engine'); + event.recipes.gtceu.assembler('tfg:immersive_aircraft/assembler/eco_engine') + .itemInputs('immersive_aircraft:engine', '3x gtceu:double_sterling_silver_plate', '3x gtceu:double_rose_gold_plate') + .itemOutputs('immersive_aircraft:eco_engine') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) + event.shaped('immersive_aircraft:steel_boiler', [ 'ABA', 'ACA', @@ -496,6 +562,12 @@ function registerImmersiveAircraftRecipes(event) { D: '#forge:tools/wrenches' }).id('tfg:immersive_aircraft/shaped/hull_reinforcement'); + event.recipes.gtceu.assembler('tfg:immersive_aircraft/assembler/hull_reinforcement') + .itemInputs('immersive_aircraft:hull', '4x gtceu:black_steel_plate') + .itemOutputs('immersive_aircraft:hull_reinforcement') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) + generateRecyclingRecipe('immersive_aircraft:recycling/hull_reinforcement', createRecyclingRecipeArgs('immersive_aircraft:hull_reinforcement', [ GTMaterials.BlackSteel, @@ -519,6 +591,12 @@ function registerImmersiveAircraftRecipes(event) { F: 'gtceu:red_alloy_dust' }).id('tfg:shaped/redblu_steel_hull_reinforcement'); + event.recipes.gtceu.assembler('tfg:assembler/redblu_steel_hull_reinforcement') + .itemInputs('immersive_aircraft:hull', '2x gtceu:red_steel_plate', '2x gtceu:blue_steel_plate', '2x gtceu:red_alloy_dust') + .itemOutputs('tfg:redblu_steel_hull_reinforcement') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) + generateRecyclingRecipe('tfg:recycling/redblu_steel_hull_reinforcement', createRecyclingRecipeArgs('tfg:redblu_steel_hull_reinforcement', [ GTMaterials.BlueSteel, @@ -544,6 +622,12 @@ function registerImmersiveAircraftRecipes(event) { D: '#forge:tools/wrenches' }).id('tfg:shaped/aluminium_hull_reinforcement'); + event.recipes.gtceu.assembler('tfg:assembler/aluminium_hull_reinforcement') + .itemInputs('immersive_aircraft:hull', '4x vintageimprovements:aluminum_sheet') + .itemOutputs('tfg:aluminium_hull_reinforcement') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) + generateRecyclingRecipe('tfg:recycling/aluminium_hull_reinforcement', createRecyclingRecipeArgs('tfg:aluminium_hull_reinforcement', [ GTMaterials.Aluminium, @@ -565,6 +649,12 @@ function registerImmersiveAircraftRecipes(event) { D: '#forge:tools/wrenches' }).id('tfg:shaped/stainless_steel_hull_reinforcement'); + event.recipes.gtceu.assembler('tfg:assembler/stainless_steel_hull_reinforcement') + .itemInputs('immersive_aircraft:hull', '4x gtceu:stainless_steel_plate') + .itemOutputs('tfg:stainless_steel_hull_reinforcement') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) + generateRecyclingRecipe('tfg:recycling/stainless_steel_hull_reinforcement', createRecyclingRecipeArgs('tfg:stainless_steel_hull_reinforcement', [ GTMaterials.StainlessSteel, @@ -586,6 +676,12 @@ function registerImmersiveAircraftRecipes(event) { D: '#forge:tools/wrenches' }).id('tfg:shaped/titanium_hull_reinforcement'); + event.recipes.gtceu.assembler('tfg:assembler/titanium_hull_reinforcement') + .itemInputs('immersive_aircraft:hull', '4x gtceu:titanium_plate') + .itemOutputs('tfg:titanium_hull_reinforcement') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) + generateRecyclingRecipe('tfg:recycling/titanium_hull_reinforcement', createRecyclingRecipeArgs('tfg:titanium_hull_reinforcement', [ GTMaterials.Titanium, @@ -604,11 +700,17 @@ function registerImmersiveAircraftRecipes(event) { A: '#forge:tools/wrenches', B: 'gtceu:black_steel_plate', C: 'gtceu:black_steel_rod', - D: 'gtceu:rubber_plate', + D: '#tfg:rubber_plates', E: 'gtceu:small_brass_gear', F: '#forge:tools/screwdrivers' }).id('tfg:immersive_aircraft/shaped/improved_landing_gear'); + event.recipes.gtceu.assembler('tfg:immersive_aircraft/assembler/improved_landing_gear') + .itemInputs('3x #tfg:rubber_plates', 'gtceu:small_brass_gear', '2x gtceu:black_steel_plate', 'gtceu:black_steel_rod') + .itemOutputs('immersive_aircraft:improved_landing_gear') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) + generateRecyclingRecipe('immersive_aircraft:recycling/improved_landing_gear', createRecyclingRecipeArgs('immersive_aircraft:improved_landing_gear', [ GTMaterials.BlackSteel, @@ -627,11 +729,17 @@ function registerImmersiveAircraftRecipes(event) { A: '#forge:tools/wrenches', B: 'gtceu:red_steel_plate', C: 'gtceu:blue_steel_rod', - D: 'gtceu:rubber_plate', + D: '#tfg:rubber_plates', E: 'gtceu:small_brass_gear', F: '#forge:tools/screwdrivers' }).id('tfg:shaped/redblu_steel_landing_gear') + event.recipes.gtceu.assembler('tfg:assembler/redblu_steel_landing_gear') + .itemInputs('3x #tfg:rubber_plates', 'gtceu:small_brass_gear', '2x gtceu:red_steel_plate', 'gtceu:blue_steel_rod') + .itemOutputs('tfg:redblu_steel_landing_gear') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) + generateRecyclingRecipe('tfg:recycling/redblu_steel_landing_gear', createRecyclingRecipeArgs('tfg:redblu_steel_landing_gear', [ GTMaterials.RedSteel, @@ -652,11 +760,17 @@ function registerImmersiveAircraftRecipes(event) { A: '#forge:tools/wrenches', B: 'vintageimprovements:aluminum_sheet', C: 'gtceu:aluminium_rod', - D: 'gtceu:rubber_plate', + D: '#tfg:rubber_plates', E: 'gtceu:cobalt_brass_gear', F: '#forge:tools/screwdrivers' }).id('tfg:shaped/aluminium_landing_gear') + event.recipes.gtceu.assembler('tfg:assembler/aluminium_landing_gear') + .itemInputs('3x #tfg:rubber_plates', 'gtceu:cobalt_brass_gear', '2x vintageimprovements:aluminum_sheet', 'gtceu:aluminium_rod') + .itemOutputs('tfg:aluminium_landing_gear') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) + generateRecyclingRecipe('tfg:recycling/aluminium_landing_gear', createRecyclingRecipeArgs('tfg:aluminium_landing_gear', [ GTMaterials.Aluminium, @@ -675,11 +789,16 @@ function registerImmersiveAircraftRecipes(event) { A: '#forge:tools/wrenches', B: 'gtceu:stainless_steel_plate', C: 'gtceu:stainless_steel_rod', - D: 'gtceu:rubber_plate', + D: '#tfg:rubber_plates', E: 'gtceu:cobalt_brass_gear', F: '#forge:tools/screwdrivers' }).id('tfg:shaped/stainless_steel_landing_gear'); + event.recipes.gtceu.assembler('tfg:assembler/stainless_steel_landing_gear') + .itemInputs('3x #tfg:rubber_plates', 'gtceu:cobalt_brass_gear', '2x gtceu:stainless_steel_plate', 'gtceu:stainless_steel_rod') + .itemOutputs('tfg:stainless_steel_landing_gear') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) generateRecyclingRecipe('tfg:recycling/stainless_steel_landing_gear', createRecyclingRecipeArgs('tfg:stainless_steel_landing_gear', [ @@ -699,11 +818,17 @@ function registerImmersiveAircraftRecipes(event) { A: '#forge:tools/wrenches', B: 'gtceu:titanium_plate', C: 'gtceu:titanium_rod', - D: 'gtceu:rubber_plate', + D: '#tfg:rubber_plates', E: 'gtceu:cobalt_brass_gear', F: '#forge:tools/screwdrivers' }).id('tfg:shaped/titanium_landing_gear'); + event.recipes.gtceu.assembler('tfg:assembler/titanium_landing_gear') + .itemInputs('3x #tfg:rubber_plates', 'gtceu:cobalt_brass_gear', '2x gtceu:titanium_plate', 'gtceu:titanium_rod') + .itemOutputs('tfg:titanium_landing_gear') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.LV]) + generateRecyclingRecipe('tfg:recycling/titanium_landing_gear', createRecyclingRecipeArgs('tfg:titanium_landing_gear', [ GTMaterials.Titanium, @@ -756,6 +881,12 @@ function registerImmersiveAircraftRecipes(event) { F: '#forge:tools/screwdrivers' }).id('tfg:immersive_aircraft/shaped/cargo_airship') + event.recipes.gtceu.assembler('tfg:immersive_aircraft/assembler/cargo_airship') + .itemInputs('immersive_aircraft:airship', '2x immersive_aircraft:engine', '2x gtceu:wood_crate', '2x #forge:rotors') + .itemOutputs('immersive_aircraft:cargo_airship') + .duration(10 * 20) + .EUt(GTValues.VA[GTValues.LV]) + //WAAGH! event.recipes.create.mechanical_crafting('immersive_aircraft:warship', [ 'ABCC ',