create-the-brass-oncerto/kubejs/server_scripts/add/electric/electrolytic_cell.js

487 lines
17 KiB
JavaScript
Raw Normal View History

2025-04-11 17:07:29 +08:00
ServerEvents.recipes(event => {
//
function ElectrolyzeFluid(fluid, mode, tank, amount) {
return ({
"type": "custommachinery:fluid",
"mode": mode,
"tank": tank,
"fluid": fluid,
"amount": amount
})
}
function ElectrolyzeFluidInput1(fluid, amount) {
return (ElectrolyzeFluid(fluid, "input", "fluidInput1", amount))
}
function ElectrolyzeFluidInput2(fluid, amount) {
return (ElectrolyzeFluid(fluid, "input", "fluidInput2", amount))
}
//阴极
function ElectrolyzeFluidOutput1(fluid, amount) {
return (ElectrolyzeFluid(fluid, "output", "fluidOutput1", amount))
}
//阳极
function ElectrolyzeFluidOutput2(fluid, amount) {
return (ElectrolyzeFluid(fluid, "output", "fluidOutput2", amount))
}
function ElectrolyzeFluidOutput3(fluid, amount) {
return (ElectrolyzeFluid(fluid, "output", "fluidOutput3", amount))
}
function ElectrolyzeEnergyInput(amount) {
return ({
"type": "custommachinery:energy_per_tick",
"mode": "input",
"amount": amount
})
}
const ElectrolyzeStructure =
{
"type": "custommachinery:structure",
"pattern": [
[
" AAAAA ",
"AAABBBAAA",
"AAABBBAAA",
"AAABBBAAA",
" AAAAA ",
" AAAAA "
], [
"DDE EDD",
" FGGGF ",
" FGHGF ",
" FGGGF ",
"DDAIIIADD",
" A A "
], [
" ",
" J ",
" K JLJ K ",
" M ",
" E E ",
" "
], [
" ",
" N ",
" OMAPAMO ",
" J ",
" ",
" "
], [
" ",
" ",
" OMAPAMO ",
" ",
" ",
" "
], [
" ",
" J ",
" O APA O ",
" F F ",
" ",
" "
], [
" ",
" ",
" R QmQ R ",
" Q Q ",
" ",
" "
], [
" ",
" ",
" T L T ",
" ",
" ",
" "
], [
" ",
" ",
" T E T ",
" ",
" ",
" "
]
],
"keys":
{
"K": "create_things_and_misc:brass_brick_slab",
"J": "design_decor:diagonal_metal_support",
"R": "kubejs:carbon_electrode",
"M": "create:smart_fluid_pipe",
"B": "create:railway_casing",
"I": "create:item_drain",
"N": "design_decor:stepped_lever",
"A": "create:copper_casing",
"O": "create:fluid_tank",
"L": "design_decor:brass_boiler",
"G": "design_decor:brass_boiler_structure",
"H": "design_decor:brass_boiler_large",
"Q": "create:fluid_pipe",
"E": "design_decor:andesite_floodlight",
"F": "create:mechanical_pump",
"P": "design_decor:copper_boiler",
"T": "createaddition:modular_accumulator",
"D": "design_decor:copper_railing",
}
}
const ElectrolyzeSound = {
"type": "custommachinery:command",
"phase": "ending",
"command": "/playsound create:steam block @a ~ ~-3.5 ~ 0.3",
"log": false,
"permissionlevel": 5
}
const ElectrolyzeParticle = {
"type": "custommachinery:command",
"phase": "crafting_tickable",
"command": "/particle minecraft:electric_spark ~ ~-2.5 ~ 1 2.5 1 0.1 8",
"log": false,
"permissionlevel": 5
}
const ElectrolyzeFluidFilter = [
"minecraft:air",
"minecraft:void_air",
"minecraft:cave_air",
"ad_astra:oxygen[level=1]",
"ad_astra:oxygen[level=2]",
"ad_astra:oxygen[level=3]",
"ad_astra:oxygen[level=4]",
"ad_astra:oxygen[level=5]",
"ad_astra:oxygen[level=6]",
"ad_astra:oxygen[level=7]",
"ad_astra:oxygen[level=8]",
"ad_astra:oxygen[level=9]",
"ad_astra:oxygen[level=10]",
"ad_astra:oxygen[level=11]",
"ad_astra:oxygen[level=12]",
"ad_astra:oxygen[level=13]",
"ad_astra:oxygen[level=14]",
"ad_astra:oxygen[level=15]",
"ad_astra:hydrogen[level=1]",
"ad_astra:hydrogen[level=2]",
"ad_astra:hydrogen[level=3]",
"ad_astra:hydrogen[level=4]",
"ad_astra:hydrogen[level=5]",
"ad_astra:hydrogen[level=6]",
"ad_astra:hydrogen[level=7]",
"ad_astra:hydrogen[level=8]",
"ad_astra:hydrogen[level=9]",
"ad_astra:hydrogen[level=10]",
"ad_astra:hydrogen[level=11]",
"ad_astra:hydrogen[level=12]",
"ad_astra:hydrogen[level=13]",
"ad_astra:hydrogen[level=14]",
"ad_astra:hydrogen[level=15]",
"kubejs:nitrogen_dioxide[level=1]",
"kubejs:nitrogen_dioxide[level=2]",
"kubejs:nitrogen_dioxide[level=3]",
"kubejs:nitrogen_dioxide[level=4]",
"kubejs:nitrogen_dioxide[level=5]",
"kubejs:nitrogen_dioxide[level=6]",
"kubejs:nitrogen_dioxide[level=7]",
"kubejs:nitrogen_dioxide[level=8]",
"kubejs:nitrogen_dioxide[level=9]",
"kubejs:nitrogen_dioxide[level=10]",
"kubejs:nitrogen_dioxide[level=11]",
"kubejs:nitrogen_dioxide[level=12]",
"kubejs:nitrogen_dioxide[level=13]",
"kubejs:nitrogen_dioxide[level=14]",
"kubejs:nitrogen_dioxide[level=15]",
"kubejs:chlorine[level=1]",
"kubejs:chlorine[level=2]",
"kubejs:chlorine[level=3]",
"kubejs:chlorine[level=4]",
"kubejs:chlorine[level=5]",
"kubejs:chlorine[level=6]",
"kubejs:chlorine[level=7]",
"kubejs:chlorine[level=8]",
"kubejs:chlorine[level=9]",
"kubejs:chlorine[level=10]",
"kubejs:chlorine[level=11]",
"kubejs:chlorine[level=12]",
"kubejs:chlorine[level=13]",
"kubejs:chlorine[level=14]",
"kubejs:chlorine[level=15]",
"kubejs:caustic_soda[level=1]",
"kubejs:caustic_soda[level=2]",
"kubejs:caustic_soda[level=3]",
"kubejs:caustic_soda[level=4]",
"kubejs:caustic_soda[level=5]",
"kubejs:caustic_soda[level=6]",
"kubejs:caustic_soda[level=7]",
"kubejs:caustic_soda[level=8]",
"kubejs:caustic_soda[level=9]",
"kubejs:caustic_soda[level=10]",
"kubejs:caustic_soda[level=11]",
"kubejs:caustic_soda[level=12]",
"kubejs:caustic_soda[level=13]",
"kubejs:caustic_soda[level=14]",
"kubejs:caustic_soda[level=15]",
"kubejs:nitric_acid[level=1]",
"kubejs:nitric_acid[level=2]",
"kubejs:nitric_acid[level=3]",
"kubejs:nitric_acid[level=4]",
"kubejs:nitric_acid[level=5]",
"kubejs:nitric_acid[level=6]",
"kubejs:nitric_acid[level=7]",
"kubejs:nitric_acid[level=8]",
"kubejs:nitric_acid[level=9]",
"kubejs:nitric_acid[level=10]",
"kubejs:nitric_acid[level=11]",
"kubejs:nitric_acid[level=12]",
"kubejs:nitric_acid[level=13]",
"kubejs:nitric_acid[level=14]",
"kubejs:nitric_acid[level=15]"
]
function ElectrolyzeItem(mode,item,amount){
return({
"type": "custommachinery:item",
"mode": mode,
"item": item,
"amount": amount
})
}
function ElectrolyzeFluidOutPositive(fluid) {
event.custom({
"type": "custommachinery:custom_machine",
"machine": "dut:electrolytic_cell",
"time": 1,
"priority": 2,
"error": true,
"hidden": true,
"requirements": [
ElectrolyzeStructure,
ElectrolyzeFluid(fluid, "input", "fluidOutput2", 1000),
{
"type": "custommachinery:block",
"mode": "input",
"action": "replace_destroy",
"amount": 1,
"pos": [-3,-5,1,-3,-5,-1],
"filter": ElectrolyzeFluidFilter,
"whitelist": true,
"block": fluid
},
{
"type": "custommachinery:block",
"mode": "input",
"action": "replace_destroy",
"amount": 1,
"pos": [-3,0,0,-3,0,0],
"filter": ["kubejs:carbon_electrode"],
"whitelist": true,
"block": "minecraft:air",
"chance":0.01
}
]
}).id("dut_create:electrolytic_cell/output_positive_" + fluid.split(":")[1])
}
function ElectrolyzeFluidOutNegative(fluid) {
event.custom({
"type": "custommachinery:custom_machine",
"machine": "dut:electrolytic_cell",
"time": 1,
"priority": 2,
"hidden": true,
"error": true,
"requirements": [
ElectrolyzeStructure,
ElectrolyzeFluid(fluid, "input", "fluidOutput1", 1000),
{
"type": "custommachinery:block",
"mode": "input",
"action": "replace_destroy",
"amount": 1,
"pos": [3,-5,1,3,-5,-1],
"filter": ElectrolyzeFluidFilter,
"whitelist": true,
"block": fluid
},
{
"type": "custommachinery:block",
"mode": "input",
"action": "replace_destroy",
"amount": 1,
"pos": [3,0,0,3,0,0],
"filter": ["kubejs:carbon_electrode"],
"whitelist": true,
"block": "minecraft:air",
"chance":0.01
}
]
}).id("dut_create:electrolytic_cell/output_negative_" + fluid.split(":")[1])
}
function ElectrolyzeFluidOutSub(fluid) {
event.custom({
"type": "custommachinery:custom_machine",
"machine": "dut:electrolytic_cell",
"time": 1,
"priority": 2,
"hidden": true,
"error": true,
"requirements": [
ElectrolyzeStructure,
ElectrolyzeFluid(fluid, "input", "fluidOutput3", 1000),
{
"type": "custommachinery:block",
"mode": "input",
"action": "replace_destroy",
"amount": 1,
"pos": [1,-5,3,-1,-5,3],
"filter": ElectrolyzeFluidFilter,
"whitelist": true,
"block": fluid
}
]
}).id("dut_create:electrolytic_cell/output_sub_" + fluid.split(":")[1])
}
ElectrolyzeFluidOutNegative("ad_astra:hydrogen")
ElectrolyzeFluidOutNegative("kubejs:nitrogen_dioxide")
ElectrolyzeFluidOutPositive("kubejs:chlorine")
ElectrolyzeFluidOutPositive("ad_astra:oxygen")
ElectrolyzeFluidOutSub("kubejs:caustic_soda")
ElectrolyzeFluidOutSub("kubejs:nitrogen_dioxide")
ElectrolyzeFluidOutSub("kubejs:nitric_acid")
event.custom({
"type": "custommachinery:custom_machine",
"machine": "dut:electrolytic_cell",
"time": 60,
"priority": 1,
"error": true,
"requirements": [
ElectrolyzeStructure,
ElectrolyzeSound,
ElectrolyzeParticle,
ElectrolyzeEnergyInput(800),
ElectrolyzeFluidInput1("minecraft:water", 4000),
ElectrolyzeFluidOutput1("ad_astra:hydrogen", 4000),
ElectrolyzeFluidOutput2("ad_astra:oxygen", 2000)
],
"jei": [
ElectrolyzeStructure,
ElectrolyzeEnergyInput(800),
ElectrolyzeFluidInput1("minecraft:water", 4000),
ElectrolyzeFluidOutput1("ad_astra:hydrogen", 4000),
ElectrolyzeFluidOutput2("ad_astra:oxygen", 2000)
]
}).id("dut_create:electrolytic_cell/water")
event.custom({
"type": "custommachinery:custom_machine",
"machine": "dut:electrolytic_cell",
"time": 30,
"priority": 1,
"error": true,
"requirements": [
ElectrolyzeStructure,
ElectrolyzeSound,
ElectrolyzeParticle,
ElectrolyzeEnergyInput(1000),
ElectrolyzeFluidInput1("kubejs:saline_water", 4000),
ElectrolyzeFluidOutput1("ad_astra:hydrogen", 2000),
ElectrolyzeFluidOutput2("kubejs:chlorine", 2000),
ElectrolyzeFluidOutput3("kubejs:caustic_soda", 4000)
],
"jei": [
ElectrolyzeStructure,
ElectrolyzeEnergyInput(1000),
ElectrolyzeFluidInput1("kubejs:saline_water", 4000),
ElectrolyzeFluidOutput1("ad_astra:hydrogen", 2000),
ElectrolyzeFluidOutput2("kubejs:chlorine", 2000),
ElectrolyzeFluidOutput3("kubejs:caustic_soda", 4000)
]
}).id("dut_create:electrolytic_cell/saline_water")
event.custom({
"type": "custommachinery:custom_machine",
"machine": "dut:electrolytic_cell",
"time": 50,
"priority": 1,
"error": true,
"requirements": [
ElectrolyzeStructure,
ElectrolyzeSound,
ElectrolyzeParticle,
ElectrolyzeEnergyInput(1000),
ElectrolyzeFluidInput1("kubejs:nitrogen", 2000),
ElectrolyzeFluidInput2("ad_astra:oxygen", 4000),
ElectrolyzeFluidOutput3("kubejs:nitrogen_dioxide", 4000)
],
"jei": [
ElectrolyzeStructure,
ElectrolyzeEnergyInput(1000),
ElectrolyzeFluidInput1("kubejs:nitrogen", 2000),
ElectrolyzeFluidInput2("ad_astra:oxygen", 4000),
ElectrolyzeFluidOutput3("kubejs:nitrogen_dioxide", 4000)
]
}).id("dut_create:electrolytic_cell/nitrogen_dioxide")
event.custom({
"type": "custommachinery:custom_machine",
"machine": "dut:electrolytic_cell",
"time": 50,
"priority": 1,
"error": true,
"requirements": [
ElectrolyzeStructure,
ElectrolyzeSound,
ElectrolyzeParticle,
ElectrolyzeEnergyInput(1000),
ElectrolyzeFluidInput1("kubejs:ammonia", 4000),
ElectrolyzeFluidInput2("ad_astra:oxygen", 8000),
ElectrolyzeFluidOutput1("kubejs:nitrogen_dioxide", 2000),
ElectrolyzeFluidOutput3("kubejs:nitric_acid", 2000)
],
"jei": [
ElectrolyzeStructure,
ElectrolyzeEnergyInput(1000),
ElectrolyzeFluidInput1("kubejs:ammonia", 4000),
ElectrolyzeFluidInput2("ad_astra:oxygen", 8000),
ElectrolyzeFluidOutput1("kubejs:nitrogen_dioxide", 2000),
ElectrolyzeFluidOutput3("kubejs:nitric_acid", 2000)
]
}).id("dut_create:electrolytic_cell/nitric_acid")
event.custom({
"type": "custommachinery:custom_machine",
"machine": "dut:electrolytic_cell",
"time": 60,
"priority": 1,
"error": true,
"requirements": [
ElectrolyzeStructure,
ElectrolyzeSound,
ElectrolyzeParticle,
ElectrolyzeEnergyInput(2400),
ElectrolyzeFluidInput2("kubejs:fused_alumina", 1440),
ElectrolyzeItem("output","kubejs:aluminum_slag",16)
],
"jei": [
ElectrolyzeStructure,
ElectrolyzeEnergyInput(2400),
ElectrolyzeFluidInput2("kubejs:fused_alumina", 1440),
ElectrolyzeItem("output","kubejs:aluminum_slag",16)
]
}).id("dut_create:electrolytic_cell/aluminum_slag")
event.custom({
"type": "custommachinery:custom_machine",
"machine": "dut:electrolytic_cell",
"time": 240,
"priority": 1,
"error": true,
"requirements": [
ElectrolyzeStructure,
ElectrolyzeSound,
ElectrolyzeParticle,
ElectrolyzeEnergyInput(49152),
ElectrolyzeFluidInput2("createbigcannons:molten_steel", 360),
ElectrolyzeItem("input","iceandfire:lightning_dragon_blood",4),
ElectrolyzeItem("output","iceandfire:dragonsteel_lightning_ingot",4)
],
"jei": [
ElectrolyzeStructure,
ElectrolyzeEnergyInput(49152),
ElectrolyzeFluidInput2("createbigcannons:molten_steel", 360),
ElectrolyzeItem("input","iceandfire:lightning_dragon_blood",4),
ElectrolyzeItem("output","iceandfire:dragonsteel_lightning_ingot",4)
]
}).id("dut_create:electrolytic_cell/dragonsteel_lightning_ingot")
})