i-hate-curseforge/kubejs/server_scripts/multiblock recipes/ore_factory.js
2024-12-30 03:38:49 +01:00

139 lines
No EOL
5.5 KiB
JavaScript

ServerEvents.recipes(event => {
event.shaped(Item.of('gtceu:electrico_kinetic_ore_factory'), [
'GCG',
'PLP',
'WPW'
], {
G: 'gtceu:bronze_gear',
C: '#gtceu:circuits/lv',
P: 'gtceu:steel_plate',
L: 'gtceu:lv_machine_hull',
W: 'gtceu:tin_single_cable'
});
event.recipes.gtceu.electrico_kinetic_ore_factory('iron_e_ore_factory')
.itemInputs('gtceu:crushed_iron_ore')
.inputFluids('minecraft:water 100')
.itemOutputs('gtceu:iron_dust')
.chancedOutput('gtceu:iron_dust', 7500, 50)
.chancedOutput('gtceu:nickel_dust', 4500, 100)
.chancedOutput('gtceu:tin_dust', 3250, 50)
.duration(160)
.inputStress(256)
.rpm(32)
.EUt(28);
event.recipes.gtceu.electrico_kinetic_ore_factory('magnetite_e_ore_factory')
.itemInputs('gtceu:crushed_magnetite_ore')
.inputFluids('minecraft:water 100')
.itemOutputs('gtceu:magnetite_dust')
.chancedOutput('gtceu:magnetite_dust', 7500, 50)
.chancedOutput('gtceu:gold_dust', 4500, 100)
.chancedOutput('gtceu:gold_dust', 3250, 50)
.duration(160)
.inputStress(256)
.rpm(32)
.EUt(28);
event.recipes.gtceu.electrico_kinetic_ore_factory('copper_e_ore_factory')
.itemInputs('gtceu:crushed_copper_ore')
.inputFluids('minecraft:water 100')
.itemOutputs('gtceu:copper_dust')
.chancedOutput('gtceu:copper_dust', 7500, 50)
.chancedOutput('gtceu:gold_dust', 4500, 100)
.chancedOutput('gtceu:nickel_dust', 3250, 50)
.duration(160)
.inputStress(256)
.rpm(32)
.EUt(28);
event.recipes.gtceu.electrico_kinetic_ore_factory('tin_e_ore_factory')
.itemInputs('gtceu:crushed_tin_ore')
.inputFluids('minecraft:water 100')
.itemOutputs('gtceu:tin_dust')
.chancedOutput('gtceu:tin_dust', 7500, 50)
.chancedOutput('gtceu:iron_dust', 4500, 100)
.chancedOutput('gtceu:zinc_dust', 3250, 50)
.duration(160)
.inputStress(256)
.rpm(32)
.EUt(28);
event.recipes.gtceu.electrico_kinetic_ore_factory('sphalerite_e_ore_factory')
.itemInputs('gtceu:crushed_sphalerite_ore')
.inputFluids('minecraft:water 100')
.itemOutputs('gtceu:sphalerite_dust')
.chancedOutput('gtceu:sphalerite_dust', 7500, 50)
.chancedOutput('gtceu:gallium_dust', 4500, 100)
.chancedOutput('gtceu:sulfur_dust', 3250, 50)
.duration(160)
.inputStress(256)
.rpm(32)
.EUt(28);
event.recipes.gtceu.electrico_kinetic_ore_factory('galena_e_ore_factory')
.itemInputs('gtceu:crushed_galena_ore')
.inputFluids('minecraft:water 100')
.itemOutputs('gtceu:galena_dust')
.chancedOutput('gtceu:galena_dust', 7500, 50)
.chancedOutput('gtceu:silver_dust', 4500, 100)
.chancedOutput('gtceu:sulfur_dust', 3250, 50)
.duration(160)
.inputStress(256)
.rpm(32)
.EUt(28);
event.recipes.gtceu.electrico_kinetic_ore_factory('stibnite_e_ore_factory')
.itemInputs('gtceu:crushed_stibnite_ore')
.inputFluids('minecraft:water 100')
.itemOutputs('gtceu:stibnite_dust')
.chancedOutput('gtceu:stibnite_dust', 7500, 50)
.chancedOutput('gtceu:antimony_dust', 4500, 100)
.chancedOutput('gtceu:sulfur_dust', 3250, 50)
.duration(160)
.inputStress(256)
.rpm(32)
.EUt(28);
function ekof(rpm, material, secondary, tertiary, quaternary) {
event.recipes.gtceu.electrico_kinetic_ore_factory(`${material}_e_ore_factory`)
.itemInputs(`gtceu:crushed_${material}_ore`)
.inputFluids(`${(rpm >= 512) ? 'gtceu:sodium_persulfate' : 'gtceu:distilled_water'} 100`)
.itemOutputs(`gtceu:${material}_dust`)
.chancedOutput(`gtceu:${material}_dust`, 5000, 150)
.chancedOutput(`gtceu:${secondary}_dust`, 2500, 100)
.chancedOutput(`gtceu:${tertiary}_dust`, 1250, 50)
.chancedOutput(`gtceu:${quaternary}_dust`, 750, 100)
.duration(320)
.inputStress(rpm * 4)
.rpm((rpm == 2048) ? 256 : (rpm == 512) ? 192 : rpm)
.EUt(rpm * 0.75);
}
ekof(32, 'chalcopyrite', 'gold', 'pyrite', 'cobalt');
ekof(32, 'cassiterite', 'tin', 'tin', 'bismuth');
ekof(32, 'silver', 'gold', 'lead', 'sulfur');
ekof(32, 'gold', 'silver', 'copper', 'nickel');
ekof(32, 'bornite', 'gold', 'pyrite', 'cobalt');
ekof(32, 'pentlandite', 'cobalt', 'iron', 'sulfur');
ekof(32, 'rock_salt', 'salt', 'salt', 'borax');
ekof(32, 'salt', 'rock_salt', 'rock_salt', 'borax');
ekof(128, 'monazite', 'thorium', 'thorium', 'neodymium');
ekof(128, 'lepidolite', 'lithium', 'lithium', 'caesium');
ekof(128, 'pyrochlore', 'apatite', 'apatite', 'calcium');
ekof(128, 'pyrolusite', 'manganese', 'manganese', 'tantalite');
ekof(128, 'cobaltite', 'cobalt', 'sulfur', 'cobalt');
ekof(128, 'apatite', 'tricalcium_phosphate', 'tricalcium_phosphate', 'phosphate');
ekof(512, 'bauxite', 'gallium', 'grossular', 'rutile');
ekof(512, 'pitchblende', 'thorium', 'thorium', 'uraninite');
ekof(512, 'ilmenite', 'iron', 'iron', 'rutile');
ekof(2048, 'cooperite', 'palladium', 'nickel', 'nickel');
ekof(2048, 'bastnasite', 'neodymium', 'neodymium', 'rare_earth');
});