This commit is contained in:
Shiroyasha 2025-09-14 20:52:18 +03:00
commit d8d0e9d536
Signed by: shiroyashik
GPG key ID: E4953D3940D7860A
2567 changed files with 167778 additions and 0 deletions

View file

@ -0,0 +1,253 @@
/**
* Custom recipes for the Iron Jetpacks mod
*/
ServerEvents.recipes(event => {
// Thermal
// Generate thermal thruster recipes
const thermalThrusters = [
["leadstone", "lead", "lead", "steamdynamo:steam_dynamo"],
["hardened", "invar", "invar", "thermal:dynamo_magmatic"],
["reinforced", "aluminium", "electrum", "thermal:dynamo_compression"],
["resonant", "enderium", "enderium", "thermal:dynamo_numismatic"]
]
thermalThrusters.forEach(([newTier, plate1, plate2, dynamo]) => {
event.shaped(Item.of(`kubejs:${newTier}_thruster`), [
"PCP",
"MDM",
"BBB"
], {
P: `#forge:plates/${plate1}`,
M: `#forge:plates/${plate2}`,
C: "thermal:rf_coil",
D: dynamo,
B: "#forge:plates/red_alloy"
}).id(`kubejs:ironjetpacks/thrusters/${newTier}`);
})
// Generate EnderIO thruster recipes
const eioThrusters = [
["conductive_iron", "conductive_alloy", "1", "kubejs:resonating_crystal", "gtceu:red_alloy_plate"],
["electrical_steel", "electrical_steel", "1", "enderio:pulsating_crystal", Item.of("kubejs:conductive_iron_thruster").weakNBT()],
["energetic", "energetic_alloy", "2", "enderio:vibrant_crystal", Item.of("kubejs:electrical_steel_thruster").weakNBT()],
["vibrant", "vibrant_alloy", "3", "enderio:prescient_crystal", Item.of("kubejs:energetic_thruster").weakNBT()]
]
eioThrusters.forEach(([newTier, plate, card, crystal, lastTier]) => {
event.shaped(Item.of(`kubejs:${newTier}_thruster`), [
"PCP",
"PRP",
"BTB"
], {
P: `#forge:plates/${plate}`,
C: `laserio:energy_overclocker_card_tier_${card}`,
R: crystal,
T: lastTier,
B: "gtceu:red_alloy_plate"
}).id(`kubejs:ironjetpacks/thrusters/${newTier}`);
})
// Special thrusters
// Dark Soularium
event.shaped(Item.of("kubejs:dark_soularium_thruster"), [
"ICI",
"IFI",
"TTT"
], {
I: "gtceu:dark_soularium_ingot",
C: "laserio:energy_overclocker_card_tier_8",
F: "kubejs:flight_control_unit",
T: Item.of("kubejs:vibrant_thruster").weakNBT()
}).id("kubejs:ironjetpacks/thrusters/dark_soularium");
// Fluxed
event.shaped(Item.of("kubejs:fluxed_thruster"), [
" P ",
"PGP",
"STS"
], {
P: "redstone_arsenal:flux_plating",
G: "kubejs:glowstone_elevation_unit",
S: "gtceu:signalum_plate",
T: Item.of("kubejs:resonant_thruster").weakNBT()
}).id("kubejs:ironjetpacks/thrusters/fluxed");
//
// Jetpacks
//
/**
* Copies old jetpack nbt to the new jetpack
* @param {Internal.ModifyRecipeCraftingGrid} grid
* @param {Internal.ItemStack} result
* @returns {Internal.ItemStack}
*/
const copyOldJetpackData = (grid, result) => {
let item = grid.find("ironjetpacks:jetpack")
if (!item.nbt) {
return result;
}
let nbt = {};
if (item.nbt.Energy) {
nbt.Energy = item.nbt.Energy
}
if (item.nbt.Engine) {
nbt.Engine = item.nbt.Engine
}
if (item.nbt.Hover) {
nbt.Hover = item.nbt.Hover
}
if (item.nbt.Throttle) {
nbt.Throttle = item.nbt.Throttle
}
return result.withNBT(nbt);
}
/**
* @type {Internal.Ingredient[][]}
*/
const jetpackBase = [
["leadstone", "ironjetpacks:strap", "lead", "thermal:flux_capacitor"],
["conductive_iron", "ironjetpacks:strap", "conductive_alloy", "enderio:basic_capacitor"]
]
/**
* @type {Internal.Ingredient[][]}
*/
const jetpackUpgrade = [
["hardened", "leadstone", "invar", Item.of("ironjetpacks:cell", '{Id:"ironjetpacks:hardened"}').weakNBT()],
["reinforced", "hardened", "electrum", Item.of("ironjetpacks:cell", '{Id:"ironjetpacks:reinforced"}').weakNBT()],
["resonant", "reinforced", "enderium", Item.of("ironjetpacks:cell", '{Id:"ironjetpacks:resonant"}').weakNBT()],
["electrical_steel", "conductive_iron", "electrical_steel", "enderio:double_layer_capacitor"],
["energetic", "electrical_steel", "energetic_alloy", "enderio:octadic_capacitor"],
["vibrant", "energetic", "vibrant_alloy", "kubejs:compressed_octadic_capacitor"]
]
jetpackBase.forEach(([newTier, middlePart, plate, energyCapacitor]) => {
event.shaped(Item.of("ironjetpacks:jetpack", `{Id:"ironjetpacks:${newTier}"}`).strongNBT(), [
"PEP",
"PSP",
"T T"
], {
P: `#forge:plates/${plate}`,
E: energyCapacitor,
S: middlePart,
T: Item.of(`kubejs:${newTier}_thruster`).weakNBT()
}).id(`kubejs:ironjetpacks/base/${newTier}`);
})
jetpackUpgrade.forEach(([newTier, previousTier, plate, energyCapacitor]) => {
event.shaped(Item.of("ironjetpacks:jetpack", `{Id:"ironjetpacks:${newTier}"}`).strongNBT(), [
"PEP",
"PSP",
"T T"
], {
P: `#forge:plates/${plate}`,
E: energyCapacitor,
S: Item.of("ironjetpacks:jetpack", `{Id:"ironjetpacks:${previousTier}"}`).weakNBT(),
T: Item.of(`kubejs:${newTier}_thruster`).weakNBT()
}).modifyResult(copyOldJetpackData).id(`kubejs:ironjetpacks/upgrade/${newTier}`);
})
event.recipes.gtceu.assembly_line("kubejs:ironjetpacks/upgrade/dark_soularium")
.itemInputs(Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:vibrant"}').weakNBT(), "gtceu:dark_soularium_block", "better_angel_ring:angel_ring", "2x enderio:ender_crystal", "kubejs:double_compressed_octadic_capacitor", "4x #gtceu:circuits/luv", Item.of("kubejs:dark_soularium_thruster", 2))
.inputFluids("gtceu:soldering_alloy 1152")
.itemOutputs(Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:dark_soularium"}').strongNBT())
.duration(3000)
.EUt(30720)
.stationResearch(b => b.researchStack(Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:vibrant"}')).EUt(3686).CWUt(64))
.modifyResult(copyOldJetpackData)
event.recipes.gtceu.assembly_line("kubejs:ironjetpacks/upgrade/fluxed")
.itemInputs(Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:resonant"}').weakNBT(), "redstone_arsenal:flux_chestplate", "kubejs:cryotheum_coolant_unit", "better_angel_ring:angel_ring", "2x kubejs:compressed_octadic_capacitor", "3x #gtceu:circuits/luv", Item.of("kubejs:fluxed_thruster", 2))
.inputFluids("gtceu:soldering_alloy 1152")
.itemOutputs(Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:fluxed"}').strongNBT())
.duration(3000)
.EUt(30720)
.stationResearch(b => b
.researchStack(Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:resonant"}'))
.EUt(3686)
.CWUt(64))
.modifyResult(copyOldJetpackData)
//
// Misc
//
event.shaped("kubejs:empty_fluxed_jetpack_unit", [
"ABA",
"BCB",
"ABA"
], {
A: "gtceu:electrum_flux_ingot",
B: "gtceu:signalum_ingot",
C: "enderio:fused_quartz"
}).id("kubejs:ironjetpacks/misc/empty_fluxed_jetpack_unit");
event.shaped("kubejs:empty_soularium_jetpack_unit", [
"ABA",
"BCB",
"ABA"
], {
A: "gtceu:dark_soularium_ingot",
B: "gtceu:electrical_steel_ingot",
C: "enderio:fused_quartz"
}).id("kubejs:ironjetpacks/misc/empty_soularium_jetpack_unit");
event.recipes.gtceu.canner("kubejs:ironjetpacks/misc/flight_control_unit")
.itemInputs("kubejs:empty_soularium_jetpack_unit", "4x minecraft:ghast_tear")
.itemOutputs("kubejs:flight_control_unit")
.duration(100)
.EUt(2000)
event.recipes.gtceu.canner("kubejs:ironjetpacks/misc/glowstone_elevation_unit")
.itemInputs("kubejs:empty_fluxed_jetpack_unit")
.inputFluids("gtceu:glowstone 4032")
.itemOutputs("kubejs:glowstone_elevation_unit")
.duration(100)
.EUt(2000)
event.recipes.gtceu.canner("kubejs:ironjetpacks/misc/cyrotheum_coolant_unit")
.itemInputs("kubejs:empty_fluxed_jetpack_unit")
.inputFluids("kubejs:molten_cryotheum 6000")
.itemOutputs("kubejs:cryotheum_coolant_unit")
.duration(100)
.EUt(2000)
// Cells, thermal exp.
event.shaped(Item.of("ironjetpacks:cell", '{Id:"ironjetpacks:hardened"}').strongNBT(), [
" A ",
"BCB",
"ADA"
], {
A: "minecraft:redstone",
B: "gtceu:invar_ingot",
C: "thermal:flux_capacitor",
D: "gtceu:tin_ingot"
}).id("kubejs:ironjetpacks/cells/hardened");
event.shaped(Item.of("ironjetpacks:cell", '{Id:"ironjetpacks:reinforced"}').strongNBT(), [
" A ",
"BCB",
"ADA"
], {
A: "minecraft:redstone",
B: "gtceu:electrum_ingot",
C: Item.of("ironjetpacks:cell", '{Id:"ironjetpacks:hardened"}').weakNBT(),
D: "#enderio:fused_quartz"
}).id("kubejs:ironjetpacks/cells/reinforced");
event.shaped(Item.of("ironjetpacks:cell", '{Id:"ironjetpacks:resonant"}').strongNBT(), [
" A ",
"BCB",
"ADA"
], {
A: "minecraft:redstone",
B: "gtceu:enderium_ingot",
C: Item.of("ironjetpacks:cell", '{Id:"ironjetpacks:reinforced"}').weakNBT(),
D: "kubejs:pyrotheum_dust"
}).id("kubejs:ironjetpacks/cells/resonant");
})