init
This commit is contained in:
commit
d8d0e9d536
2567 changed files with 167778 additions and 0 deletions
248
kubejs/server_scripts/mods/Solar_Flux.js
Normal file
248
kubejs/server_scripts/mods/Solar_Flux.js
Normal file
|
|
@ -0,0 +1,248 @@
|
|||
/**
|
||||
* Solar Flux mod script.
|
||||
*
|
||||
* Adds recipes for:
|
||||
* Solar Flux Solars
|
||||
* Photovoltaic Cells
|
||||
* Sunnarium
|
||||
* GT <-> Solarflux conversion recipes
|
||||
* Does not add recipes for:
|
||||
* Sculk Solars
|
||||
* Neutronium & Infinity Solars
|
||||
*/
|
||||
ServerEvents.recipes(event => {
|
||||
|
||||
// T1 (No photovoltaic cell)
|
||||
event.shaped("2x solarflux:sp_1", [
|
||||
"MMM",
|
||||
"WWW",
|
||||
"SCS"
|
||||
], {
|
||||
M: "solarflux:mirror",
|
||||
W: "gtceu:fine_copper_wire",
|
||||
S: "minecraft:stone_slab",
|
||||
C: "laserio:energy_overclocker_card_tier_1"
|
||||
})
|
||||
event.recipes.gtceu.assembler("sp_1")
|
||||
.itemInputs([
|
||||
Item.of("solarflux:mirror", 3),
|
||||
Item.of("gtceu:fine_copper_wire", 3),
|
||||
Item.of("minecraft:stone_slab", 2),
|
||||
Item.of("laserio:energy_overclocker_card_tier_1", 1)
|
||||
])
|
||||
.itemOutputs("2x solarflux:sp_1")
|
||||
.duration(2400)
|
||||
.EUt(2)
|
||||
|
||||
// All the other panels follow a pattern until 7
|
||||
let solarCrafting = [
|
||||
["gtceu:tin_single_cable", "minecraft:redstone_block", "gtceu:cupronickel_plate", "laserio:energy_overclocker_card_tier_2"],
|
||||
["gtceu:electrical_steel_plate", "gtceu:conductive_alloy_block", "gtceu:electrical_steel_gear", "laserio:energy_overclocker_card_tier_3"],
|
||||
["gtceu:microversium_ingot", "gtceu:end_steel_block", "gtceu:microversium_ingot", "laserio:energy_overclocker_card_tier_4"],
|
||||
["gtceu:lumium_plate", "gtceu:sunnarium_dust", "gtceu:lumium_plate", "laserio:energy_overclocker_card_tier_5"],
|
||||
["gtceu:signalum_plate", "gtceu:enriched_sunnarium_dust", "gtceu:signalum_plate", "laserio:energy_overclocker_card_tier_6"]
|
||||
]
|
||||
|
||||
solarCrafting.forEach((ingredients, index) => {
|
||||
// Account for the first recipe, which doesn't use a photovoltaic cell
|
||||
let photovoltaic = index == 0 ?
|
||||
"gtceu:tempered_glass"
|
||||
: `solarflux:photovoltaic_cell_${index}`
|
||||
event.shaped(`2x solarflux:sp_${index + 2}`, [
|
||||
"SCS",
|
||||
"WBW",
|
||||
"PEP"
|
||||
], {
|
||||
S: `solarflux:sp_${index + 1}`,
|
||||
C: photovoltaic,
|
||||
W: ingredients[0],
|
||||
B: ingredients[1],
|
||||
P: ingredients[2],
|
||||
E: ingredients[3]
|
||||
})
|
||||
// Account for when the same ingredients are used twice
|
||||
let assemblerInputs;
|
||||
if (ingredients[0] == ingredients[2]) {
|
||||
assemblerInputs = [
|
||||
`2x solarflux:sp_${index + 1}`,
|
||||
Item.of(photovoltaic, 1),
|
||||
Item.of(ingredients[0], 4),
|
||||
Item.of(ingredients[1], 1),
|
||||
Item.of(ingredients[3], 1)
|
||||
]
|
||||
} else {
|
||||
assemblerInputs = [
|
||||
`2x solarflux:sp_${index + 1}`,
|
||||
Item.of(photovoltaic, 1),
|
||||
Item.of(ingredients[0], 2),
|
||||
Item.of(ingredients[1], 1),
|
||||
Item.of(ingredients[2], 2),
|
||||
Item.of(ingredients[3], 1)
|
||||
]
|
||||
}
|
||||
event.recipes.gtceu.assembler(`sp_${index + 2}`)
|
||||
.itemInputs(assemblerInputs)
|
||||
.itemOutputs(`2x solarflux:sp_${index + 2}`)
|
||||
.duration(2400)
|
||||
.EUt(GTValues.VA[index])
|
||||
})
|
||||
|
||||
// High tier solars
|
||||
|
||||
// T7
|
||||
event.recipes.gtceu.assembler("sp_7")
|
||||
.itemInputs("2x solarflux:sp_6", "3x solarflux:photovoltaic_cell_5", "2x gtceu:osmium_plate", "laserio:energy_overclocker_card_tier_7")
|
||||
.inputFluids("gtceu:signalum 1296")
|
||||
.itemOutputs("2x solarflux:sp_7")
|
||||
.duration(2400)
|
||||
.EUt(GTValues.VA[GTValues.IV])
|
||||
|
||||
// T8
|
||||
event.recipes.gtceu.assembly_line("sp_8")
|
||||
.itemInputs("2x solarflux:sp_7", "3x solarflux:photovoltaic_cell_6", "2x gtceu:osmiridium_plate", "laserio:energy_overclocker_card_tier_8")
|
||||
.inputFluids("gtceu:enderium 1296")
|
||||
.itemOutputs("2x solarflux:sp_8")
|
||||
["scannerResearch(java.util.function.UnaryOperator)"](b => b.researchStack("solarflux:sp_7").EUt(480).duration(1200))
|
||||
.duration(4800)
|
||||
.EUt(30720)
|
||||
|
||||
//
|
||||
// Photovoltaic Cell Recipes
|
||||
//
|
||||
|
||||
// Similar thing with the photovoltaic cells, cells 2-6 follow a pattern (1 uses mirror)
|
||||
|
||||
// Mirror
|
||||
event.shaped("solarflux:mirror", [
|
||||
"GGG",
|
||||
"SSS",
|
||||
" "
|
||||
], {
|
||||
G: "minecraft:glass_pane",
|
||||
S: "gtceu:silver_plate"
|
||||
})
|
||||
|
||||
// Photovoltaic Cell T1
|
||||
event.shaped("6x solarflux:photovoltaic_cell_1", [
|
||||
"LLL",
|
||||
"MMM",
|
||||
"FFF"
|
||||
], {
|
||||
L: "gtceu:lapis_plate",
|
||||
M: "solarflux:mirror",
|
||||
F: "gtceu:fluix_plate"
|
||||
})
|
||||
|
||||
// Photovoltaic Cells T2-6
|
||||
let cellCrafting = [
|
||||
[2, "enderio:photovoltaic_plate", "gtceu:battery_alloy_plate"],
|
||||
[3, "minecraft:ender_pearl", "gtceu:annealed_copper_plate"],
|
||||
[4, "gtceu:light_blue_glass_lens", "gtceu:vibrant_alloy_plate"],
|
||||
[5, "gtceu:sunnarium_plate", "gtceu:sunnarium_plate"],
|
||||
[6, "gtceu:enriched_sunnarium_plate", "gtceu:enriched_sunnarium_plate"]
|
||||
]
|
||||
|
||||
cellCrafting.forEach(cell => {
|
||||
event.shaped(`6x solarflux:photovoltaic_cell_${cell[0]}`, [
|
||||
"TTT",
|
||||
"PPP",
|
||||
"BBB"
|
||||
], {
|
||||
T: cell[1],
|
||||
P: `solarflux:photovoltaic_cell_${cell[0] - 1}`,
|
||||
B: cell[2]
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
// Sunnarium
|
||||
event.shaped("3x gtceu:sunnarium_dust", [
|
||||
"ABA",
|
||||
"BCB",
|
||||
"ABA"
|
||||
], {
|
||||
A: "kubejs:stabilized_plutonium",
|
||||
B: "kubejs:stabilized_americium",
|
||||
C: "minecraft:glowstone"
|
||||
})
|
||||
event.recipes.gtceu.mixer("kubejs:sunnarium_dust_mixer")
|
||||
.inputFluids("gtceu:plutonium 144", "gtceu:americium 72")
|
||||
.itemInputs("minecraft:glowstone_dust")
|
||||
.itemOutputs("2x gtceu:sunnarium_dust")
|
||||
.duration(1800)
|
||||
.EUt(GTValues.VHA[GTValues.IV]);
|
||||
event.recipes.gtceu.mixer("kubejs:sunnarium_dust_mixer_alt")
|
||||
.inputFluids("gtceu:plutonium_241 144", "gtceu:americium 72")
|
||||
.itemInputs("minecraft:glowstone_dust")
|
||||
.itemOutputs("2x gtceu:sunnarium_dust")
|
||||
.duration(1800)
|
||||
.EUt(GTValues.VHA[GTValues.IV]);
|
||||
|
||||
event.remove({ id: "gtceu:macerator/macerate_sunnarium_plate" })
|
||||
|
||||
|
||||
// Enriched Sunnarium
|
||||
event.shaped("4x gtceu:enriched_sunnarium_dust", [
|
||||
"ABA",
|
||||
"BCB",
|
||||
"ABA"
|
||||
], {
|
||||
A: "kubejs:stabilized_neptunium",
|
||||
B: "kubejs:stabilized_curium",
|
||||
C: "gtceu:sunnarium_dust"
|
||||
})
|
||||
event.recipes.gtceu.mixer("kubejs:enriched_sunnarium_dust_mixer")
|
||||
.inputFluids("gtceu:neptunium 288", "gtceu:curium 144")
|
||||
.itemInputs("gtceu:sunnarium_dust")
|
||||
.itemOutputs("6x gtceu:enriched_sunnarium_dust")
|
||||
.duration(2400)
|
||||
.EUt(GTValues.VHA[GTValues.LuV]);
|
||||
|
||||
event.remove({ id: "gtceu:macerator/macerate_enriched_sunnarium_plate" })
|
||||
event.remove({ id: "gtceu:macerator/macerate_dense_enriched_sunnarium_plate" })
|
||||
})
|
||||
|
||||
/* Gregtech Solar conversion/reversion */
|
||||
ServerEvents.recipes(event => {
|
||||
event.remove({ id: /gtceu:shaped\/solar_panel_/ })
|
||||
|
||||
// Basic conversion & reversion
|
||||
event.shapeless("2x gtceu:solar_panel", "solarflux:sp_3").id("gtceu:solar_panel_basic_conversion")
|
||||
event.shapeless("solarflux:sp_3", "2x gtceu:solar_panel").id("gtceu:solar_panel_basic_reversion")
|
||||
|
||||
// Generic conversion & reversion (Note the switch for Sculk solars)
|
||||
for (let index = 0; index <= 8; index++) {
|
||||
let tiername = TIER_ID_MAPPING[index].toLowerCase();
|
||||
let solarFluxPanel;
|
||||
if (index <= 4) {
|
||||
solarFluxPanel = `solarflux:sp_${index + 4}`;
|
||||
} else {
|
||||
switch (index) {
|
||||
case 5:
|
||||
solarFluxPanel = "solarflux:sp_custom_bathyal"
|
||||
break;
|
||||
case 6:
|
||||
solarFluxPanel = "solarflux:sp_custom_abyssal"
|
||||
break;
|
||||
case 7:
|
||||
solarFluxPanel = "solarflux:sp_custom_hadal"
|
||||
break;
|
||||
case 8:
|
||||
solarFluxPanel = "solarflux:sp_custom_neutronium"
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
event.recipes.gtceu.atomic_reconstruction(`gtceu:solar_panel_${tiername}_conversion`)
|
||||
.itemInputs(solarFluxPanel)
|
||||
.itemOutputs(`gtceu:${tiername}_solar_panel`)
|
||||
.duration(5)
|
||||
.EUt(32)
|
||||
event.recipes.gtceu.atomic_reconstruction(`gtceu:solar_panel_${tiername}_reversion`)
|
||||
.itemInputs(`gtceu:${tiername}_solar_panel`)
|
||||
.itemOutputs(solarFluxPanel)
|
||||
.duration(5)
|
||||
.EUt(32)
|
||||
}
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue