This commit is contained in:
Shiroyasha 2025-09-14 21:22:24 +03:00
commit a956daf8e2
Signed by: shiroyashik
GPG key ID: E4953D3940D7860A
2351 changed files with 163047 additions and 0 deletions

View file

@ -0,0 +1,183 @@
/**
* Atomic Reconstructor singleblock
*/
ServerEvents.recipes(event => {
const reconstructedItems = [
["minecraft:redstone", "gtceu:restonia_gem", GTValues.VA[GTValues.MV], "restonia"],
["minecraft:iron_ingot", "gtceu:enori_gem", GTValues.VA[GTValues.MV], "enori"],
["minecraft:coal", "gtceu:void_gem", GTValues.VA[GTValues.MV], "void"],
["minecraft:lapis_lazuli", "gtceu:palis_gem", GTValues.VA[GTValues.MV], "palis"],
["minecraft:diamond", "gtceu:diamatine_gem", GTValues.VA[GTValues.MV], "diamatine"],
["minecraft:emerald", "gtceu:emeradic_gem", GTValues.VA[GTValues.MV], "emeradic"],
["minecraft:coal_block", "gtceu:void_block", GTValues.VA[GTValues.MV], "void_block"],
["#forge:storage_blocks/redstone", "gtceu:restonia_block", GTValues.VA[GTValues.MV], "restonia_block"],
["#forge:storage_blocks/lapis", "gtceu:palis_block", GTValues.VA[GTValues.MV], "palis_block"],
["#forge:storage_blocks/diamond", "gtceu:diamatine_block", GTValues.VA[GTValues.MV], "diamatine_block"],
["#forge:storage_blocks/emerald", "gtceu:emeradic_block", GTValues.VA[GTValues.MV], "emeradic_block"],
["#forge:storage_blocks/iron", "gtceu:enori_block", GTValues.VA[GTValues.MV], "enori_block"],
["minecraft:sand", "minecraft:soul_sand", GTValues.VA[GTValues.MV], "soul_sand"],
["minecraft:quartz", "minecraft:prismarine_shard", GTValues.VA[GTValues.MV], "prismarine_shard"],
["minecraft:rotten_flesh", "minecraft:leather", GTValues.VA[GTValues.LV], "leather"],
["gtceu:topaz_gem", "minecraft:prismarine_crystals", GTValues.VA[GTValues.MV], "prismarine_crystals"],
["gtceu:steel_ingot", "gtceu:damascus_steel_ingot", GTValues.VA[GTValues.MV], "damascus_steel"],
["gtceu:diamatine_block", "kubejs:starry_diamond_block", GTValues.VA[GTValues.MV], "starry_diamond"],
["gtceu:obsidian_dust", "enderio:grains_of_infinity", GTValues.VA[GTValues.LV], "temp_grains"],
["minecraft:dried_kelp", "minecraft:wither_rose", GTValues.VA[GTValues.LV], "wither_rose"],
["gtceu:plant_ball", "minecraft:kelp", GTValues.VA[GTValues.LV], "kelp"],
["minecraft:obsidian", "minecraft:crying_obsidian", GTValues.VA[GTValues.LV], "crying_obsidian"],
["#forge:dyes/black", "minecraft:ink_sac", GTValues.VA[GTValues.LV], "ink_sac"],
["minecraft:ink_sac", "minecraft:glow_ink_sac", GTValues.VA[GTValues.LV], "glow_ink_sac"],
["thermal:rubberwood_sapling", "gtceu:rubber_sapling", GTValues.VA[GTValues.LV], "rubberwood_to_rubber"],
["gtceu:rubber_sapling", "thermal:rubberwood_sapling", GTValues.VA[GTValues.LV], "rubber_to_rubberwood"],
]
const crystals = ["enori", "void", "palis", "diamatine", "restonia", "emeradic"]
crystals.forEach(crystal => {
event.remove({ id: `gtceu:shaped/gear_${crystal}` })
event.remove({ id: `gtceu:shaped/gear_${crystal}_empowered` })
})
// Black Quartz
event.recipes.gtceu.electrolyzer("kubejs:black_quartz_dust")
.itemInputs("4x gtceu:quartzite_dust")
.itemOutputs("gtceu:black_quartz_dust")
.duration(400)
.EUt(90)
event.recipes.gtceu.autoclave("kubejs:black_quartz_gem__water")
.itemInputs("gtceu:black_quartz_dust")
.inputFluids(Fluid.of("minecraft:water", 250))
.itemOutputs("gtceu:black_quartz_gem")
.duration(1200)
.EUt(24)
event.recipes.gtceu.autoclave("kubejs:black_quartz_gem__distilled")
.itemInputs("gtceu:black_quartz_dust")
.inputFluids(Fluid.of("gtceu:distilled_water", 50))
.itemOutputs("gtceu:black_quartz_gem")
.duration(600)
.EUt(24)
// Black quartz, tag-based recipes for Tinted Glass
event.replaceInput({ output: "minecraft:tinted_glass" }, "minecraft:glass", "#forge:glass")
event.replaceInput({ output: "minecraft:tinted_glass" }, "minecraft:amethyst_shard", "#forge:gems/amethyst")
event.shaped("2x minecraft:tinted_glass", [
" Q ",
"QGQ",
" Q "
], {
Q: "#forge:gems/black_quartz",
G: "#forge:glass"
}).id("kubejs:tinted_glass_black_quartz")
event.recipes.gtceu.assembler("tinted_glass_black_quartz")
.itemInputs("2x #forge:gems/black_quartz", "#forge:glass")
.itemOutputs("minecraft:tinted_glass")
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
// Reconstruction
reconstructedItems.forEach(([input, output, eut, id]) => {
event.recipes.gtceu.atomic_reconstruction(`kubejs:${id}`)
.itemInputs(input)
.itemOutputs(output)
.duration(20)
.EUt(eut)
})
// Universal Circuits
const tiers = ["ulv", "lv", "mv", "hv", "ev", "iv", "luv", "zpm", "uv", "uhv", "uev", "uiv"]
tiers.forEach((level) => {
event.recipes.gtceu.atomic_reconstruction(`kubejs:${level}_universal_circuit`)
.itemInputs(`#gtceu:circuits/${level}`)
.itemOutputs(`kubejs:${level}_universal_circuit`)
.EUt(32)
.duration(5)
})
const reconstructorrecipe = [
["lv", "lead"],
["mv", "rose_gold"],
["hv", "beryllium"],
["ev", "platinum"],
["iv", "rhodium"],
["luv", "osmiridium"],
["zpm", "naquadah"],
["uv", "duranium"],
["uhv", "tritanium"],
["uev", "omnium"],
["uiv", "holmium"]
]
reconstructorrecipe.forEach(([tier, plate]) => {
event.shaped(`gtceu:${tier}_atomic_reconstructor`, [
"CPC",
"EHE",
"PPM"
], {
P: `gtceu:${plate}_plate`,
E: `gtceu:${tier}_emitter`,
H: `gtceu:${tier}_machine_hull`,
C: `#gtceu:circuits/${tier}`,
M: `gtceu:${tier}_electric_motor`
}).id(`kubejs:shaped/${tier}_atomic_reconstructor`)
})
// Crystal Gears
crystals.forEach(crystal => {
event.recipes.gtceu.extruder(`kubejs:${crystal}_gear`)
.itemInputs(`4x gtceu:${crystal}_gem`)
.itemOutputs(`gtceu:${crystal}_gear`)
.notConsumable("gtceu:gear_extruder_mold")
.duration(80)
.EUt(56)
})
// Flower conversion convenience recipes
const flowerCycle = [
"dandelion",
"poppy",
"blue_orchid",
"allium",
"azure_bluet",
"red_tulip",
"orange_tulip",
"white_tulip",
"pink_tulip",
"oxeye_daisy",
"cornflower",
"lily_of_the_valley",
// 'sunflower', //Flowers that give 2x as much dye are excluded. Sorry!
// 'lilac',
// 'rose_bush',
// 'peony',
"spore_blossom",
"wither_rose",
"dead_bush"
]
reconstructCycle(flowerCycle);
// Fungus conversion convenience recipes
const fungusCycle = [
"red_mushroom",
"brown_mushroom",
"nether_wart"
]
reconstructCycle(fungusCycle);
/**
* Creates a "cycle" of Atomic Reconstructor recipes that allow players to transmute
* any one item in the cycle into any other, through repeated applications of Atomic Reconstruction.
* Best applied to plants or fungi, where getting one enables you to get many more easily.
*
* @param {Ingredient[]} cycle The array of ingredients for the AR to cycle through
*/
function reconstructCycle(cycle) {
cycle.forEach((flower, index) => {
let curItem = cycle[index];
let nextItem = cycle[(index + 1) % cycle.length];
event.recipes.gtceu.atomic_reconstruction(`gtceu:${curItem}_to_${nextItem}`)
.itemInputs(`minecraft:${curItem}`)
.itemOutputs(`minecraft:${nextItem}`)
.EUt(GTValues.VA[GTValues.LV])
.duration(30)
})
}
})