508 lines
17 KiB
JavaScript
508 lines
17 KiB
JavaScript
/**
|
|
* Custom recipes for Ad Astra
|
|
*/
|
|
ServerEvents.recipes(event => {
|
|
// Replace all Steel plates & rods
|
|
event.replaceInput({ id: /^ad_astra:.*/ }, "ad_astra:steel_rod", "gtceu:steel_rod")
|
|
event.replaceInput({ id: /^ad_astra:.*/ }, "ad_astra:steel_plate", "gtceu:steel_plate")
|
|
|
|
|
|
// Space Suit
|
|
event.shaped("4x kubejs:thermal_cloth", [
|
|
"SSS",
|
|
"SSS",
|
|
"SSS"
|
|
], {
|
|
S: "minecraft:string"
|
|
})
|
|
|
|
event.shaped("kubejs:unprepared_space_helmet", [
|
|
"TTT",
|
|
"T T",
|
|
" "
|
|
], {
|
|
T: "kubejs:thermal_cloth"
|
|
})
|
|
|
|
event.shaped("kubejs:unprepared_space_suit", [
|
|
"T T",
|
|
"TTT",
|
|
"TTT"
|
|
], {
|
|
T: "kubejs:thermal_cloth"
|
|
})
|
|
|
|
event.shaped("kubejs:unprepared_space_pants", [
|
|
"TTT",
|
|
"T T",
|
|
"T T"
|
|
], {
|
|
T: "kubejs:thermal_cloth"
|
|
})
|
|
|
|
event.shaped("kubejs:unprepared_space_boots", [
|
|
" ",
|
|
"T T",
|
|
"T T"
|
|
], {
|
|
T: "kubejs:thermal_cloth"
|
|
})
|
|
|
|
event.shaped("kubejs:pressure_layer", [
|
|
"CPC",
|
|
"CPC",
|
|
"CPC"
|
|
], {
|
|
C: "kubejs:thermal_cloth",
|
|
P: "gtceu:black_steel_plate"
|
|
})
|
|
|
|
event.shaped("kubejs:radiation_layer", [
|
|
"CPC",
|
|
"CPC",
|
|
"CPC"
|
|
], {
|
|
C: "kubejs:thermal_cloth",
|
|
P: "gtceu:lead_plate"
|
|
})
|
|
|
|
const spacesuit = ["pants", "boots"]
|
|
|
|
// Space Suit
|
|
event.remove({ id: "ad_astra:space_helmet" })
|
|
event.recipes.gtceu.assembler("space_helmet")
|
|
.itemInputs("kubejs:unprepared_space_helmet", "#forge:double_plates/steel", "2x kubejs:pressure_layer", "2x kubejs:radiation_layer", "#gtceu:circuits/lv", "#forge:glass")
|
|
.itemOutputs("ad_astra:space_helmet")
|
|
.duration(300)
|
|
.EUt(GTValues.VA[GTValues.LV])
|
|
|
|
event.remove({ id: "ad_astra:space_suit" })
|
|
event.recipes.gtceu.assembler("space_suit")
|
|
.itemInputs("kubejs:unprepared_space_suit", "#forge:double_plates/steel", "2x kubejs:pressure_layer", "2x kubejs:radiation_layer", "ad_astra:oxygen_gear", "2x ad_astra:gas_tank")
|
|
.itemOutputs("ad_astra:space_suit")
|
|
.duration(300)
|
|
.EUt(GTValues.VA[GTValues.LV])
|
|
|
|
spacesuit.forEach(part => {
|
|
event.remove({ id: `ad_astra:space_${part}` })
|
|
event.recipes.gtceu.assembler(`space_${part}`)
|
|
.itemInputs(`kubejs:unprepared_space_${part}`, "#forge:double_plates/steel", "2x kubejs:pressure_layer", "2x kubejs:radiation_layer")
|
|
.itemOutputs(`ad_astra:space_${part}`)
|
|
.duration(300)
|
|
.EUt(GTValues.VA[GTValues.LV])
|
|
})
|
|
|
|
// Netherite space suit
|
|
event.remove({ id: "ad_astra:netherite_space_helmet" })
|
|
event.recipes.gtceu.assembler("netherite_space_helmet")
|
|
.itemInputs("kubejs:unprepared_space_helmet", "minecraft:netherite_ingot", "2x kubejs:pressure_layer", "2x kubejs:radiation_layer", "#gtceu:circuits/hv", "#forge:glass/tinted", "#forge:foils/gold")
|
|
.itemOutputs("ad_astra:netherite_space_helmet")
|
|
.duration(400)
|
|
.EUt(GTValues.VA[GTValues.MV])
|
|
|
|
event.remove({ id: "ad_astra:netherite_space_suit" })
|
|
event.recipes.gtceu.assembler("netherite_space_suit")
|
|
.itemInputs("kubejs:unprepared_space_suit", "minecraft:netherite_ingot", "2x kubejs:pressure_layer", "2x kubejs:radiation_layer", "ad_astra:oxygen_gear", "2x ad_astra:large_gas_tank")
|
|
.itemOutputs("ad_astra:netherite_space_suit")
|
|
.duration(400)
|
|
.EUt(GTValues.VA[GTValues.MV])
|
|
|
|
spacesuit.forEach(part => {
|
|
event.remove({ id: `ad_astra:netherite_space_${part}` })
|
|
event.recipes.gtceu.assembler(`netherite_space_${part}`)
|
|
.itemInputs(`kubejs:unprepared_space_${part}`, "minecraft:netherite_ingot", "2x kubejs:pressure_layer", "2x kubejs:radiation_layer")
|
|
.itemOutputs(`ad_astra:netherite_space_${part}`)
|
|
.duration(400)
|
|
.EUt(GTValues.VA[GTValues.MV])
|
|
})
|
|
|
|
// Jet Suit
|
|
event.remove({ id: "ad_astra:jet_suit_helmet" })
|
|
event.recipes.gtceu.assembler("jet_suit_helmet")
|
|
.itemInputs("ad_astra:netherite_space_helmet", "4x gtceu:titanium_carbide_plate", "2x kubejs:pressure_layer", "2x kubejs:radiation_layer", "#gtceu:circuits/iv")
|
|
.itemOutputs("ad_astra:jet_suit_helmet")
|
|
.duration(400)
|
|
.EUt(GTValues.VA[GTValues.EV])
|
|
|
|
event.remove({ id: "ad_astra:jet_suit" })
|
|
event.recipes.gtceu.assembler("jet_suit")
|
|
.itemInputs("ad_astra:netherite_space_suit", "4x gtceu:titanium_carbide_plate", "2x kubejs:pressure_layer", "2x kubejs:radiation_layer", "ad_astra:oxygen_gear", "2x ad_astra:large_gas_tank", "2x kubejs:vibrant_thruster")
|
|
.itemOutputs("ad_astra:jet_suit")
|
|
.duration(400)
|
|
.EUt(GTValues.VA[GTValues.EV])
|
|
|
|
spacesuit.forEach(part => {
|
|
event.remove({ id: `ad_astra:jet_suit_${part}` })
|
|
event.recipes.gtceu.assembler(`jet_suit_${part}`)
|
|
.itemInputs(`ad_astra:netherite_space_${part}`, "4x gtceu:titanium_carbide_plate", "2x kubejs:pressure_layer", "2x kubejs:radiation_layer")
|
|
.itemOutputs(`ad_astra:jet_suit_${part}`)
|
|
.duration(400)
|
|
.EUt(GTValues.VA[GTValues.EV])
|
|
})
|
|
|
|
|
|
// Nasa Work Bench
|
|
event.recipes.extendedcrafting.shaped_table("ad_astra:nasa_workbench", [
|
|
"RPEPR",
|
|
"PXCXP",
|
|
"PCACP",
|
|
"PXCXP",
|
|
"RPEPR"
|
|
], {
|
|
P: "gtceu:double_steel_plate",
|
|
R: "gtceu:hv_robot_arm",
|
|
X: "gtceu:hv_machine_casing",
|
|
A: "gtceu:mv_assembler",
|
|
E: "gtceu:hv_emitter",
|
|
C: "#gtceu:circuits/hv"
|
|
}).id("ad_astra:nasa_workbench")
|
|
|
|
// Oxygen Gear
|
|
event.remove({ output: "ad_astra:oxygen_gear" })
|
|
event.shaped("ad_astra:oxygen_gear", [
|
|
" R ",
|
|
"PCP",
|
|
"F F"
|
|
], {
|
|
R: "kubejs:resonating_crystal",
|
|
P: "gtceu:lv_electric_pump",
|
|
C: "#gtceu:circuits/lv",
|
|
F: "gtceu:steel_fluid_cell"
|
|
})
|
|
|
|
// Engines and Tanks
|
|
event.remove({ output: /ad_astra:.*_engine/ })
|
|
event.remove({ output: /ad_astra:.*_tank/ })
|
|
event.shaped("ad_astra:steel_engine", [
|
|
" P ",
|
|
"PPP",
|
|
"TTT"
|
|
], {
|
|
P: "gtceu:double_black_steel_plate",
|
|
T: "kubejs:electrical_steel_thruster"
|
|
})
|
|
|
|
event.shaped("ad_astra:steel_tank", [
|
|
"PTP",
|
|
"PTP",
|
|
"PTP"
|
|
], {
|
|
P: "gtceu:double_black_steel_plate",
|
|
T: "enderio:fluid_tank"
|
|
})
|
|
|
|
event.shaped("ad_astra:desh_engine", [
|
|
" P ",
|
|
"PPP",
|
|
"TTT"
|
|
], {
|
|
P: "gtceu:double_signalum_plate",
|
|
T: "kubejs:energetic_thruster"
|
|
})
|
|
|
|
event.shaped("ad_astra:desh_tank", [
|
|
"PTP",
|
|
"PTP",
|
|
"PTP"
|
|
], {
|
|
P: "gtceu:double_signalum_plate",
|
|
T: "enderio:fluid_tank"
|
|
})
|
|
|
|
|
|
event.shaped("ad_astra:ostrum_engine", [
|
|
" P ",
|
|
"PPP",
|
|
"TTT"
|
|
], {
|
|
P: "gtceu:double_hsss_plate",
|
|
T: "kubejs:vibrant_thruster"
|
|
})
|
|
|
|
event.shaped("ad_astra:ostrum_tank", [
|
|
"PTP",
|
|
"PTP",
|
|
"PTP"
|
|
], {
|
|
P: "gtceu:double_hsss_plate",
|
|
T: "enderio:fluid_tank"
|
|
})
|
|
|
|
event.shaped("ad_astra:calorite_engine", [
|
|
" P ",
|
|
"PPP",
|
|
"TTT"
|
|
], {
|
|
P: "gtceu:double_cryolobus_plate",
|
|
T: "kubejs:dark_soularium_thruster"
|
|
})
|
|
|
|
event.shaped("ad_astra:calorite_tank", [
|
|
"PTP",
|
|
"PTP",
|
|
"PTP"
|
|
], {
|
|
P: "gtceu:double_cryolobus_plate",
|
|
T: "enderio:fluid_tank"
|
|
})
|
|
|
|
event.recipes.gtceu.assembler("ad_astra/gas_tank")
|
|
.itemInputs("gtceu:fluid_cell", "4x gtceu:iron_plate")
|
|
.itemOutputs("ad_astra:gas_tank")
|
|
.duration(100)
|
|
.EUt(32)
|
|
event.recipes.gtceu.assembler("ad_astra/large_gas_tank")
|
|
.itemInputs("3x gtceu:fluid_cell", "12x gtceu:steel_plate")
|
|
.itemOutputs("ad_astra:large_gas_tank")
|
|
.duration(100)
|
|
.EUt(32)
|
|
|
|
|
|
// Launch Pad
|
|
event.remove({ id: "ad_astra:launch_pad" })
|
|
event.recipes.gtceu.assembler("ad_astra:launch_pad")
|
|
.itemInputs("9x gtceu:dense_steel_plate", "27x gtceu:concrete_dust")
|
|
.itemOutputs("ad_astra:launch_pad")
|
|
.duration(300)
|
|
.EUt(30)
|
|
|
|
// Oxygen Loading
|
|
event.custom('{"type": "ad_astra:oxygen_loading","cookingtime": 1,"energy": 30,"input": {"ingredient": {"tag": "forge:oxygen"},"millibuckets": 25},"result": {"fluid": "gtceu:oxygen","millibuckets": 25}}');
|
|
event.remove({ id: /oxygen_from_oxygen_loading/ })
|
|
|
|
event.remove({ id: "ad_astra:oxygen_distributor" })
|
|
event.shaped("ad_astra:oxygen_distributor", [
|
|
"BRB",
|
|
"PHP",
|
|
"BCB"
|
|
], {
|
|
R: "gtceu:steel_rotor",
|
|
H: "gtceu:hv_machine_hull",
|
|
P: "gtceu:hv_electric_pump",
|
|
B: "minecraft:iron_bars",
|
|
C: "#gtceu:circuits/hv"
|
|
})
|
|
|
|
event.remove({ id: "ad_astra:oxygen_loader" })
|
|
event.shaped("ad_astra:oxygen_loader", [
|
|
"BCB",
|
|
"PHP",
|
|
"BRB"
|
|
], {
|
|
R: "gtceu:steel_rotor",
|
|
H: "gtceu:lv_machine_hull",
|
|
P: "gtceu:lv_electric_pump",
|
|
B: "minecraft:iron_bars",
|
|
C: "#gtceu:circuits/lv"
|
|
})
|
|
|
|
event.remove({ id: "ad_astra:gravity_normalizer" })
|
|
event.shaped("ad_astra:gravity_normalizer", [
|
|
"BEB",
|
|
"CHC",
|
|
"BBB"
|
|
], {
|
|
E: "gtceu:ev_emitter",
|
|
H: "gtceu:ev_machine_hull",
|
|
B: "gtceu:titanium_plate",
|
|
C: "#gtceu:circuits/ev"
|
|
})
|
|
|
|
event.remove({ id: "ad_astra:oxygen_sensor" })
|
|
event.shaped("ad_astra:oxygen_sensor", [
|
|
"RRR",
|
|
"TOT",
|
|
"RRR"
|
|
], {
|
|
R: "gtceu:red_alloy_plate",
|
|
T: "gtceu:lv_sensor",
|
|
O: "ad_astra:oxygen_loader"
|
|
})
|
|
Item.of("ad_astra:tier_1_rover", '{BotariumData:{StoredFluids:[{Amount:0L,Fluid:"minecraft:empty"}]}}')
|
|
|
|
event.remove({ id: "ad_astra:tier_1_rover" })
|
|
event.recipes.gtceu.assembler("ad_astra:tier_1_rover")
|
|
.itemInputs(["8x gtceu:steel_plate", "4x ad_astra:wheel", "2x gtceu:lv_electric_motor", "ad_astra:radio", "gtceu:lv_sensor"])
|
|
.itemOutputs("ad_astra:tier_1_rover")
|
|
.duration(600)
|
|
.EUt(32)
|
|
|
|
const decormaterials = ["iron", "etrium", "steel", "desh", "ostrum", "calorite"]
|
|
decormaterials.forEach(material => {
|
|
event.stonecutting(`ad_astra:${material}_plateblock`, `ad_astra:${material}_panel`)
|
|
event.stonecutting(`ad_astra:encased_${material}_block`, `ad_astra:${material}_panel`)
|
|
event.stonecutting(`ad_astra:${material}_factory_block`, `ad_astra:${material}_panel`)
|
|
if (material != "iron") event.stonecutting(`ad_astra:${material}_block`, `ad_astra:${material}_panel`)
|
|
})
|
|
|
|
event.shaped("64x ad_astra:etrium_panel", [
|
|
"PDP",
|
|
"DDD",
|
|
"PDP"
|
|
], {
|
|
D: "minecraft:diamond",
|
|
P: "gtceu:diamond_plate"
|
|
})
|
|
|
|
// Rockets
|
|
event.remove({ id: /nasa_workbench/ })
|
|
const rocket = [ // Plate mats currently just based on color of rocket for testing
|
|
["tier_1_rocket", "steel", "black_steel"],
|
|
["tier_2_rocket", "desh", "signalum"],
|
|
["tier_3_rocket", "ostrum", "hsss"],
|
|
["tier_4_rocket", "calorite", "cryolobus"],
|
|
]
|
|
|
|
rocket.forEach(([rocket, tier, platematerial]) => {
|
|
event.custom({
|
|
"type": "ad_astra:nasa_workbench",
|
|
"ingredients": [
|
|
{
|
|
"item": "ad_astra:rocket_nose_cone"
|
|
},
|
|
{
|
|
"item": `gtceu:double_${platematerial}_plate`
|
|
},
|
|
{
|
|
"item": `gtceu:double_${platematerial}_plate`
|
|
},
|
|
{
|
|
"item": `gtceu:double_${platematerial}_plate`
|
|
},
|
|
{
|
|
"item": `gtceu:double_${platematerial}_plate`
|
|
},
|
|
{
|
|
"item": `gtceu:double_${platematerial}_plate`
|
|
},
|
|
{
|
|
"item": `gtceu:double_${platematerial}_plate`
|
|
},
|
|
{
|
|
"item": "ad_astra:rocket_fin"
|
|
},
|
|
{
|
|
"item": `ad_astra:${tier}_tank`
|
|
},
|
|
{
|
|
"item": `ad_astra:${tier}_tank`
|
|
},
|
|
{
|
|
"item": "ad_astra:rocket_fin"
|
|
},
|
|
{
|
|
"item": "ad_astra:rocket_fin"
|
|
},
|
|
{
|
|
"item": `ad_astra:${tier}_engine`
|
|
},
|
|
{
|
|
"item": "ad_astra:rocket_fin"
|
|
}
|
|
],
|
|
"result": {
|
|
"count": 1,
|
|
"id": `ad_astra:${rocket}`
|
|
}
|
|
})
|
|
})
|
|
|
|
// Space Stations
|
|
event.remove({ id: /space_station/ })
|
|
const spacestations = ["earth", "moon", "mars", "venus", "glacio", "mercury"]
|
|
spacestations.forEach(dim => {
|
|
event.custom({
|
|
"type": "ad_astra:space_station_recipe",
|
|
"dimension": `ad_astra:${dim}_orbit`,
|
|
"ingredients": [
|
|
{
|
|
"count": 16,
|
|
"ingredient": {
|
|
"item": "gtceu:double_titanium_plate"
|
|
}
|
|
},
|
|
{
|
|
"count": 8,
|
|
"ingredient": {
|
|
"tag": "gtceu:circuits/ev"
|
|
}
|
|
},
|
|
{
|
|
"count": 4,
|
|
"ingredient": {
|
|
"item": "gtceu:ev_robot_arm"
|
|
}
|
|
},
|
|
{
|
|
"count": 2,
|
|
"ingredient": {
|
|
"item": "gtceu:ev_emitter"
|
|
}
|
|
}
|
|
],
|
|
"structure": "ad_astra:space_station"
|
|
})
|
|
})
|
|
})
|
|
|
|
ServerEvents.tags("fluid", event => {
|
|
// Fuel
|
|
event.add("ad_astra:fuel", "gtceu:rocket_fuel")
|
|
event.add("ad_astra:fuel", "gtceu:jean_gasoline")
|
|
event.add("ad_astra:efficient_fuel", "gtceu:jean_gasoline")
|
|
})
|
|
|
|
ServerEvents.tags("item", event => {
|
|
const quarkTechArmor = [
|
|
"gtceu:quarktech_helmet",
|
|
"gtceu:quarktech_chestplate",
|
|
"gtceu:advanced_quarktech_chestplate",
|
|
"gtceu:quarktech_leggings",
|
|
"gtceu:quarktech_boots"
|
|
]
|
|
event.add("ad_astra:space_resistant_armor", quarkTechArmor)
|
|
event.add("ad_astra:freeze_resistant_armor", quarkTechArmor)
|
|
event.add("ad_astra:heat_resistant_armor", quarkTechArmor)
|
|
})
|
|
|
|
ServerEvents.recipes(event => {
|
|
// Ad Astra Rock Breaker
|
|
function AdAstraRockBreaker(id, input, output, EUt, dimension) {
|
|
event.recipes.gtceu.rock_breaker(`kubejs:${id}`)
|
|
.notConsumable(Item.of(input))
|
|
.itemOutputs(output)
|
|
.duration(16)
|
|
.EUt(EUt)
|
|
.dimension(dimension)
|
|
.addDataString("fluidA", "minecraft:lava")
|
|
.addDataString("fluidB", "minecraft:water")
|
|
}
|
|
|
|
AdAstraRockBreaker("moonstone", "ad_astra:moon_stone", "ad_astra:moon_stone", 240, "ad_astra:moon")
|
|
AdAstraRockBreaker("moondeepslate", "ad_astra:moon_deepslate", "ad_astra:moon_deepslate", 240, "ad_astra:moon")
|
|
AdAstraRockBreaker("marsstone", "ad_astra:mars_stone", "ad_astra:mars_stone", 240, "ad_astra:mars")
|
|
AdAstraRockBreaker("conglomerate", "ad_astra:conglomerate", "ad_astra:conglomerate", 240, "ad_astra:mars")
|
|
AdAstraRockBreaker("venusstone", "ad_astra:venus_stone", "ad_astra:venus_stone", 960, "ad_astra:venus")
|
|
AdAstraRockBreaker("infernalspireblock", "ad_astra:infernal_spire_block", "ad_astra:infernal_spire_block", 960, "ad_astra:venus")
|
|
AdAstraRockBreaker("mercurystone", "ad_astra:mercury_stone", "ad_astra:mercury_stone", 960, "ad_astra:mercury")
|
|
AdAstraRockBreaker("glaciostone", "ad_astra:glacio_stone", "ad_astra:glacio_stone", 2160, "ad_astra:glacio")
|
|
AdAstraRockBreaker("permafrost", "ad_astra:permafrost", "ad_astra:permafrost", 2160, "ad_astra:glacio")
|
|
|
|
// Ad Astra Rock Forge Hammers
|
|
function AdAstraForgeHammer(id, input, output, duration, EUt) {
|
|
event.recipes.gtceu.forge_hammer(`kubejs:${id}`)
|
|
.itemInputs(Item.of(input))
|
|
.itemOutputs(output)
|
|
.duration(duration)
|
|
.EUt(EUt)
|
|
}
|
|
|
|
AdAstraForgeHammer("mooncobble", "ad_astra:moon_stone", "ad_astra:moon_cobblestone", 12, 4)
|
|
AdAstraForgeHammer("moonsand", "ad_astra:moon_cobblestone", "ad_astra:moon_sand", 10, 16)
|
|
AdAstraForgeHammer("marscobble", "ad_astra:mars_stone", "ad_astra:mars_cobblestone", 12, 4)
|
|
AdAstraForgeHammer("marssand", "ad_astra:mars_cobblestone", "ad_astra:mars_sand", 10, 16)
|
|
AdAstraForgeHammer("venuscobble", "ad_astra:venus_stone", "ad_astra:venus_cobblestone", 12, 4)
|
|
AdAstraForgeHammer("venussand", "ad_astra:venus_cobblestone", "ad_astra:venus_sand", 10, 16)
|
|
AdAstraForgeHammer("mercurycobble", "ad_astra:mercury_stone", "ad_astra:mercury_cobblestone", 12, 4)
|
|
AdAstraForgeHammer("glaciocobble", "ad_astra:glacio_stone", "ad_astra:glacio_cobblestone", 12, 4)
|
|
})
|