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

164 lines
No EOL
7.5 KiB
JavaScript

ServerEvents.recipes(event => {
event.shaped(Item.of('gtceu:ore_processing_plant'), [
'GCG',
'PLP',
'WPW'
], {
G: 'gtceu:tungsten_carbide_gear',
C: '#gtceu:circuits/iv',
P: 'gtceu:tungsten_carbide_plate',
L: 'gtceu:iv_machine_hull',
W: 'gtceu:platinum_single_cable'
});
event.recipes.gtceu.ore_processing_plant('iron_opp')
.itemInputs('gtceu:crushed_iron_ore')
.inputFluids('minecraft:water 100')
.itemOutputs('gtceu:iron_dust')
.chancedOutput('gtceu:iron_dust', 9500, 50)
.chancedOutput('gtceu:nickel_dust', 6500, 100)
.chancedOutput('gtceu:tin_dust', 5250, 50)
.duration(160)
.EUt(28);
event.recipes.gtceu.ore_processing_plant('magnetite_opp')
.itemInputs('gtceu:crushed_magnetite_ore')
.inputFluids('minecraft:water 100')
.itemOutputs('gtceu:magnetite_dust')
.chancedOutput('gtceu:magnetite_dust', 9500, 50)
.chancedOutput('gtceu:gold_dust', 6500, 100)
.chancedOutput('gtceu:gold_dust', 5250, 50)
.duration(160)
.EUt(28);
event.recipes.gtceu.ore_processing_plant('copper_opp')
.itemInputs('gtceu:crushed_copper_ore')
.inputFluids('minecraft:water 100')
.itemOutputs('gtceu:copper_dust')
.chancedOutput('gtceu:copper_dust', 9500, 50)
.chancedOutput('gtceu:gold_dust', 6500, 100)
.chancedOutput('gtceu:nickel_dust', 5250, 50)
.duration(160)
.EUt(28);
event.recipes.gtceu.ore_processing_plant('tin_opp')
.itemInputs('gtceu:crushed_tin_ore')
.inputFluids('minecraft:water 100')
.itemOutputs('gtceu:tin_dust')
.chancedOutput('gtceu:tin_dust', 9500, 50)
.chancedOutput('gtceu:iron_dust', 6500, 100)
.chancedOutput('gtceu:zinc_dust', 5250, 50)
.duration(160)
.EUt(28);
event.recipes.gtceu.ore_processing_plant('sphalerite_opp')
.itemInputs('gtceu:crushed_sphalerite_ore')
.inputFluids('minecraft:water 100')
.itemOutputs('gtceu:sphalerite_dust')
.chancedOutput('gtceu:sphalerite_dust', 9500, 50)
.chancedOutput('gtceu:gallium_dust', 6500, 100)
.chancedOutput('gtceu:sulfur_dust', 5250, 50)
.duration(160)
.EUt(28);
event.recipes.gtceu.ore_processing_plant('galena_opp')
.itemInputs('gtceu:crushed_galena_ore')
.inputFluids('minecraft:water 100')
.itemOutputs('gtceu:galena_dust')
.chancedOutput('gtceu:galena_dust', 9500, 50)
.chancedOutput('gtceu:silver_dust', 6500, 100)
.chancedOutput('gtceu:sulfur_dust', 5250, 50)
.duration(160)
.EUt(28);
event.recipes.gtceu.ore_processing_plant('stibnite_opp')
.itemInputs('gtceu:crushed_stibnite_ore')
.inputFluids('minecraft:water 100')
.itemOutputs('gtceu:stibnite_dust')
.chancedOutput('gtceu:stibnite_dust', 9500, 50)
.chancedOutput('gtceu:antimony_dust', 6500, 100)
.chancedOutput('gtceu:sulfur_dust', 5250, 50)
.duration(160)
.EUt(28);
function opp1(voltage, material, secondary, tertiary, quaternary) {
event.recipes.gtceu.ore_processing_plant(`${material}_opp`)
.itemInputs(`gtceu:crushed_${material}_ore`)
.inputFluids(`${(voltage >= 512) ? 'gtceu:sodium_persulfate' : 'gtceu:distilled_water'} 100`)
.itemOutputs(`gtceu:${material}_dust`)
.chancedOutput(`gtceu:${material}_dust`, 7500, 150)
.chancedOutput(`gtceu:${secondary}_dust`, 5500, 100)
.chancedOutput(`gtceu:${tertiary}_dust`, 3250, 50)
.chancedOutput(`gtceu:${quaternary}_dust`, 1750, 100)
.duration(240)
.EUt(voltage * 0.5);
}
opp1(32, 'chalcopyrite', 'gold', 'pyrite', 'cobalt');
opp1(32, 'cassiterite', 'tin', 'tin', 'bismuth');
opp1(32, 'silver', 'gold', 'lead', 'sulfur');
opp1(32, 'gold', 'silver', 'copper', 'nickel');
opp1(32, 'bornite', 'gold', 'pyrite', 'cobalt');
opp1(32, 'pentlandite', 'cobalt', 'iron', 'sulfur');
opp1(32, 'rock_salt', 'salt', 'salt', 'borax');
opp1(32, 'salt', 'rock_salt', 'rock_salt', 'borax');
opp1(128, 'monazite', 'thorium', 'thorium', 'neodymium');
opp1(128, 'lepidolite', 'lithium', 'lithium', 'caesium');
opp1(128, 'pyrochlore', 'apatite', 'apatite', 'calcium');
opp1(128, 'pyrolusite', 'manganese', 'manganese', 'tantalite');
opp1(128, 'cobaltite', 'cobalt', 'sulfur', 'cobalt');
opp1(128, 'vanadium_magnetite', 'magnetite', 'gold', 'vanadium');
opp1(128, 'chromite', 'iron', 'magnesium', 'iron');
opp1(128, 'beryllium', 'emerald', 'emerald', 'beryllium');
opp1(128, 'apatite', 'tricalcium_phosphate', 'tricalcium_phosphate', 'phosphate');
opp1(512, 'bauxite', 'gallium', 'grossular', 'rutile');
opp1(512, 'pitchblende', 'thorium', 'thorium', 'uraninite');
opp1(512, 'ilmenite', 'iron', 'iron', 'rutile');
opp1(512, 'molybdenite', 'molybdenum', 'sulfur', 'molybdenum');
opp1(512, 'tantalite', 'manganese', 'niobium', 'niobium');
opp1(512, 'pollucite', 'caesium', 'aluminium', 'aluminium');
opp1(2048, 'cooperite', 'palladium', 'nickel', 'nickel');
opp1(2048, 'bastnasite', 'neodymium', 'neodymium', 'rare_earth');
opp1(2048, 'tungstate', 'silver', 'manganese', 'lithium');
opp1(2048, 'scheelite', 'manganese', 'manganese', 'molybdenum');
opp1(2048, 'zeolite', 'calcium', 'aluminium', 'silicon');
function opp2(voltage, material, secondary, tertiary, quaternary) {
event.recipes.gtceu.ore_processing_plant(`${material}_opp`)
.itemInputs(`gtceu:crushed_${material}_ore`)
.inputFluids('gtceu:sodium_persulfate 500')
.itemOutputs(`gtceu:${material}_dust`)
.chancedOutput(`gtceu:${material}_dust`, 7500, 150)
.chancedOutput(`gtceu:${secondary}_dust`, 5500, 100)
.chancedOutput(`gtceu:${tertiary}_dust`, 3250, 50)
.chancedOutput(`gtceu:${quaternary}_dust`, 1750, 100)
.duration(320)
.EUt(voltage * 0.75);
}
opp2(8192, 'titanite', 'rutile', 'rare_earth', 'bauxite', 'pyrite');
opp2(8192, 'zapolite', 'lautarite', 'iodargyrite', 'titanite', 'tungstate');
opp2(8192, 'lautarite', 'clausthalite', 'stibnite', 'calaverite', 'sylvanite');
opp2(8192, 'iodargyrite', 'lautarite', 'galena', 'tungstate', 'iodargyrite');
opp2(8192, 'clausthalite', 'tiemannite', 'klockmannite', 'berzelianite', 'stibiopalladinite');
opp2(8192, 'crookesite', 'lautarite', 'calaverite', 'sylvanite', 'crookesite');
opp2(8192, 'calaverite', 'sylvanite', 'clausthalite', 'lautarite', 'calaverite');
opp2(8192, 'sylvanite', 'calaverite', 'clausthalite', 'bauxite', 'sylvanite');
opp2(8192, 'tiemannite', 'clausthalite', 'klockmannite', 'berzelianite', 'tiemannite');
opp2(8192, 'klockmannite', 'clausthalite', 'tiemannite', 'stibiopalladinite', 'klockmannite');
opp2(8192, 'stibiopalladinite', 'clausthalite', 'berzelianite', 'tiemannite', 'stibiopalladinite');
opp2(8192, 'berzelianite', 'umangite', 'aguilarite', 'polybasite', 'berzelianite');
opp2(8192, 'umangite', 'berzelianite', 'aguilarite', 'polybasite', 'umangite');
opp2(8192, 'aguilarite', 'berzelianite', 'umangite', 'polybasite', 'aguilarite');
opp2(8192, 'rheniite', 'molybdenite', 'sulfur', 'molybdenum', 'rheniite');
});