init
This commit is contained in:
commit
d8d0e9d536
2567 changed files with 167778 additions and 0 deletions
253
kubejs/server_scripts/mods/iron_jetpacks.js
Normal file
253
kubejs/server_scripts/mods/iron_jetpacks.js
Normal 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");
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue