refactor the dusty ore code

This commit is contained in:
Pyritie 2025-09-02 23:05:31 +01:00
parent 4a763e120e
commit 013ebc581d
4 changed files with 204 additions and 250 deletions

View file

@ -21,7 +21,6 @@ const registerTFGRecipes = (event) => {
registerTFGStoneDustRecipes(event)
registerTFGRecyclingRecipes(event)
registerTFGNuclearRecipes(event)
registerTFGMarsRecipes(event)
registerTFGMoonOres(event)
registerTFGSpaceOres(event)
}

View file

@ -1,117 +0,0 @@
function registerTFGMarsRecipes(event) {
const $ChanceLogic = Java.loadClass('com.gregtechceu.gtceu.api.recipe.chance.logic.ChanceLogic')
// Ostrum Harvester
event.recipes.gtceu.ostrum_harvester(`tfg:ostrum_harvesting`)
.perTick(true)
.inputFluids('gtceu:drilling_fluid 4')
.perTick(false)
.dimension('ad_astra:mars')
.itemOutputsRanged('gtceu:ostrum_dust',1,5)
.duration(20*30)
.duration(20*30)
.EUt(GTValues.VA[GTValues.LV]);
// Ostrum Linear Accelerator Recipes
event.recipes.gtceu.ostrum_linear_accelerator('tfg:ostrum_transformation')
.inputFluids('gtceu:residual_radioactive_concoction 1000')
.itemInputs('32x #forge:dusts/ostrum')
.chancedFluidOutputLogic($ChanceLogic.XOR)
.chancedFluidOutput('gtceu:lightweight_ostrum_vapor',6000,0)
.chancedFluidOutput('gtceu:ostrum_vapor',3000,0)
.chancedFluidOutput('gtceu:dense_ostrum_vapor',1000,0)
.dimension('ad_astra:mars')
.duration(20*5)
.EUt(GTValues.VA[GTValues.EV]);
event.recipes.gtceu.ostrum_linear_accelerator('tfg:lightweight_ostrum')
.inputFluids('gtceu:lightweight_ostrum_vapor 1000')
.inputFluids('gtceu:residual_radioactive_concoction 100')
.inputFluids(Fluid.of('gtceu:heavy_water', 1000))
.itemOutputsRanged('#forge:dusty_raw_materials/pitchblende',1,10)
.itemOutputsRanged('#forge:dusty_raw_materials/silver',1,10)
.itemOutputsRanged('#forge:dusty_raw_materials/tricalcium_phosphate',1,10)
.dimension('ad_astra:mars')
.duration(20*5)
.EUt(GTValues.VA[GTValues.IV]);
event.recipes.gtceu.ostrum_linear_accelerator('tfg:ostrum')
.inputFluids('gtceu:ostrum_vapor 1000')
.inputFluids('gtceu:residual_radioactive_concoction 100')
.inputFluids(Fluid.of('gtceu:radon', 100))
.itemOutputsRanged(Item.of('#forge:dusty_raw_materials/bauxite'),1,10)
.itemOutputsRanged(Item.of('#forge:dusty_raw_materials/lead'),1,10)
.itemOutputsRanged(Item.of('#forge:dusty_raw_materials/beryllium'),1,10)
.dimension('ad_astra:mars')
.duration(20*5)
.EUt(GTValues.VA[GTValues.IV]);
event.recipes.gtceu.ostrum_linear_accelerator('tfg:dense_ostrum')
.inputFluids('gtceu:dense_ostrum_vapor 1000')
.inputFluids('gtceu:residual_radioactive_concoction 100')
.inputFluids(Fluid.of('gtceu:tritiated_water', 500))
.itemOutputsRanged(Item.of('#forge:dusty_raw_materials/thorium'),1,10)
.itemOutputsRanged(Item.of('#forge:dusty_raw_materials/uraninite'),1,10)
.dimension('ad_astra:mars')
.duration(20*5)
.EUt(GTValues.VA[GTValues.IV]);
//#endregion
//#region Centrifuge Dusty Ores
event.recipes.gtceu.centrifuge('tfg:dusty_to_dust_pitchblende')
.itemInputs('#forge:dusty_raw_materials/pitchblende')
.itemOutputs('gtceu:pitchblende_dust')
.duration(20*45)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.centrifuge('tfg:dusty_to_dust_silver')
.itemInputs('#forge:dusty_raw_materials/silver')
.itemOutputs('gtceu:silver_dust')
.duration(20*45)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.centrifuge('tfg:dusty_to_dust_tricalcium_phosphate')
.itemInputs('#forge:dusty_raw_materials/tricalcium_phosphate')
.itemOutputs('gtceu:tricalcium_phosphate')
.duration(20*45)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.centrifuge('tfg:dusty_to_dust_bauxite')
.itemInputs('#forge:dusty_raw_materials/bauxite')
.itemOutputs('gtceu:aluminium_dust')
.duration(20*45)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.centrifuge('tfg:dusty_to_dust_lead')
.itemInputs('#forge:dusty_raw_materials/lead')
.itemOutputs('gtceu:lead_dust')
.duration(20*45)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.centrifuge('tfg:dusty_to_dust_beryllium')
.itemInputs('#forge:dusty_raw_materials/beryllium')
.itemOutputs('gtceu:beryllium_dust')
.duration(20*45)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.centrifuge('tfg:dusty_to_dust_thorium')
.itemInputs('#forge:dusty_raw_materials/thorium')
.itemOutputs('gtceu:thorium_dust')
.duration(20*45)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.centrifuge('tfg:dusty_to_dust_uraninite')
.itemInputs('#forge:dusty_raw_materials/uraninite')
.itemOutputs('gtceu:uraninite_dust')
.duration(20*45)
.EUt(GTValues.VA[GTValues.MV])
//#endregion
}

View file

@ -1,131 +0,0 @@
// priority: 0
function registerTFGMoonOres(event) {
//#region Moon Harvester
event.recipes.gtceu.moon_dust_harvester('tfg:lunar_assurine_harvester')
.biome('tfg:moon/lunar_asurine_dense')
.itemOutputsRanged('#forge:dusts/certus_regolith',1,5)
.duration(20*80)
.EUt(GTValues.VA[GTValues.LV])
.circuit(1)
event.recipes.gtceu.moon_dust_harvester('tfg:lunar_chorus_dense')
.biome('tfg:moon/lunar_chorus_dense')
.itemOutputsRanged('#forge:dusts/goethe_regolith',1,5)
.duration(20*80)
.EUt(GTValues.VA[GTValues.LV])
.circuit(2)
event.recipes.gtceu.moon_dust_harvester('tfg:lunar_corals_dense')
.biome('tfg:moon/lunar_corals_dense')
.itemOutputsRanged('#forge:dusts/bright_regolith',1,5)
.duration(20*80)
.EUt(GTValues.VA[GTValues.LV])
.circuit(3)
event.recipes.gtceu.moon_dust_harvester('tfg:lunar_lights_dense')
.biome('tfg:moon/lunar_lights_dense')
.itemOutputsRanged('#forge:dusts/cassiterite_regolith',1,5)
.duration(20*80)
.EUt(GTValues.VA[GTValues.LV])
.circuit(4)
//#endregion
//#region Regolith Vapor Processing
event.recipes.gtceu.mixer('tfg:regolith_slurry_suspension')
.itemInputs('ad_astra:moon_sand', 'tfg:dry_ice')
.itemOutputs('#forge:dusts/regolith_mush')
.dimension('ad_astra:moon')
.duration(20*60)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.chemical_bath('tfg:regolith_vapor')
.itemInputs('#forge:dusts/regolith_mush')
.inputFluids('gtceu:nitrogen 1000')
.itemOutputs('#forge:dusts/silicon_dioxide')
.outputFluids('gtceu:regolith_vapor 1000')
.dimension('ad_astra:moon')
.duration(20*28)
.EUt(GTValues.VHA[GTValues.LV])
//#endregion
//#region Making Dusty Ores
const $ChanceLogic = Java.loadClass('com.gregtechceu.gtceu.api.recipe.chance.logic.ChanceLogic')
event.recipes.gtceu.chemical_reactor('tfg:dusty_certus_reactor')
.itemInputs('#forge:dusts/certus_regolith')
.inputFluids('gtceu:regolith_vapor 100')
.itemOutputs('gtceu:dusty_raw_certus_quartz')
.dimension('ad_astra:moon')
.duration(20*68)
.EUt(GTValues.VHA[GTValues.ULV])
event.recipes.gtceu.chemical_reactor('tfg:dusty_goethite_reactor')
.itemInputs('#forge:dusts/goethe_regolith')
.inputFluids('gtceu:regolith_vapor 100')
.itemOutputs('gtceu:dusty_raw_goethite')
.dimension('ad_astra:moon')
.duration(20*68)
.EUt(GTValues.VHA[GTValues.ULV])
event.recipes.gtceu.chemical_reactor('tfg:dusty_shiny_reactor')
.itemInputs('#forge:dusts/bright_regolith')
.inputFluids('gtceu:regolith_vapor 100')
.chancedItemOutputLogic($ChanceLogic.XOR)
.chancedOutput('gtceu:dusty_raw_diamond',2000,0)
.chancedOutput('gtceu:dusty_raw_gold',8000,0)
.dimension('ad_astra:moon')
.duration(20*68)
.EUt(GTValues.VHA[GTValues.ULV])
event.recipes.gtceu.chemical_reactor('tfg:dusty_cassiterite_reactor')
.itemInputs('#forge:dusts/cassiterite_regolith')
.inputFluids('gtceu:regolith_vapor 100')
.itemOutputs('gtceu:dusty_raw_cassiterite')
.dimension('ad_astra:moon')
.duration(20*68)
.EUt(GTValues.VHA[GTValues.ULV])
//#endregion
//#region Dusty to Dust through centrifuge
event.recipes.gtceu.centrifuge('tfg:dusty_to_dust_certus_quartz')
.itemInputs('gtceu:dusty_raw_certus_quartz')
.itemOutputs('ae2:certus_quartz_dust')
.duration(20*45)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.centrifuge('tfg:dusty_to_dust_goethite')
.itemInputs('gtceu:dusty_raw_goethite')
.chancedItemOutputLogic($ChanceLogic.XOR)
.chancedOutput('gtceu:iron_dust',5000,0)
.chancedOutput('gtceu:copper_dust',5000,0)
.duration(20*45)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.centrifuge('tfg:dusty_to_dust_diamond')
.itemInputs('gtceu:dusty_raw_diamond')
.itemOutputs('gtceu:diamond_dust')
.duration(20*45)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.centrifuge('tfg:dusty_to_dust_gold')
.itemInputs('gtceu:dusty_raw_gold')
.itemOutputs('gtceu:gold_dust')
.duration(20*45)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.centrifuge('tfg:dusty_to_dust_tin')
.itemInputs('gtceu:dusty_raw_cassiterite')
.itemOutputs('gtceu:tin_dust')
.duration(20*45)
.EUt(GTValues.VA[GTValues.MV])
}

View file

@ -0,0 +1,203 @@
// priority: 0
function registerTFGSpaceOres(event) {
//#region Moon Harvester
event.recipes.gtceu.moon_dust_harvester('tfg:lunar_assurine_harvester')
.biome('tfg:moon/lunar_asurine_dense')
.itemOutputsRanged('#forge:dusts/certus_regolith', 1, 5)
.duration(20 * 80)
.EUt(GTValues.VA[GTValues.LV])
.circuit(1)
event.recipes.gtceu.moon_dust_harvester('tfg:lunar_chorus_dense')
.biome('tfg:moon/lunar_chorus_dense')
.itemOutputsRanged('#forge:dusts/goethe_regolith', 1, 5)
.duration(20 * 80)
.EUt(GTValues.VA[GTValues.LV])
.circuit(2)
event.recipes.gtceu.moon_dust_harvester('tfg:lunar_corals_dense')
.biome('tfg:moon/lunar_corals_dense')
.itemOutputsRanged('#forge:dusts/bright_regolith', 1, 5)
.duration(20 * 80)
.EUt(GTValues.VA[GTValues.LV])
.circuit(3)
event.recipes.gtceu.moon_dust_harvester('tfg:lunar_lights_dense')
.biome('tfg:moon/lunar_lights_dense')
.itemOutputsRanged('#forge:dusts/cassiterite_regolith', 1, 5)
.duration(20 * 80)
.EUt(GTValues.VA[GTValues.LV])
.circuit(4)
//#endregion
//#region Regolith Vapor Processing
event.recipes.gtceu.mixer('tfg:regolith_slurry_suspension')
.itemInputs('ad_astra:moon_sand', 'tfg:dry_ice')
.itemOutputs('#forge:dusts/regolith_mush')
.dimension('ad_astra:moon')
.duration(20 * 60)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.chemical_bath('tfg:regolith_vapor')
.itemInputs('#forge:dusts/regolith_mush')
.inputFluids('gtceu:nitrogen 1000')
.itemOutputs('#forge:dusts/silicon_dioxide')
.outputFluids('gtceu:regolith_vapor 1000')
.dimension('ad_astra:moon')
.duration(20 * 28)
.EUt(GTValues.VHA[GTValues.LV])
//#endregion
//#region Making Dusty Ores
const $ChanceLogic = Java.loadClass('com.gregtechceu.gtceu.api.recipe.chance.logic.ChanceLogic')
event.recipes.gtceu.chemical_reactor('tfg:dusty_certus_reactor')
.itemInputs('#forge:dusts/certus_regolith')
.inputFluids('gtceu:regolith_vapor 100')
.itemOutputs('gtceu:dusty_raw_certus_quartz')
.dimension('ad_astra:moon')
.duration(20 * 68)
.EUt(GTValues.VHA[GTValues.ULV])
event.recipes.gtceu.chemical_reactor('tfg:dusty_goethite_reactor')
.itemInputs('#forge:dusts/goethe_regolith')
.inputFluids('gtceu:regolith_vapor 100')
.itemOutputs('gtceu:dusty_raw_goethite')
.dimension('ad_astra:moon')
.duration(20 * 68)
.EUt(GTValues.VHA[GTValues.ULV])
event.recipes.gtceu.chemical_reactor('tfg:dusty_shiny_reactor')
.itemInputs('#forge:dusts/bright_regolith')
.inputFluids('gtceu:regolith_vapor 100')
.chancedItemOutputLogic($ChanceLogic.XOR)
.chancedOutput('gtceu:dusty_raw_diamond', 2000, 0)
.chancedOutput('gtceu:dusty_raw_gold', 8000, 0)
.dimension('ad_astra:moon')
.duration(20 * 68)
.EUt(GTValues.VHA[GTValues.ULV])
event.recipes.gtceu.chemical_reactor('tfg:dusty_cassiterite_reactor')
.itemInputs('#forge:dusts/cassiterite_regolith')
.inputFluids('gtceu:regolith_vapor 100')
.itemOutputs('gtceu:dusty_raw_cassiterite')
.dimension('ad_astra:moon')
.duration(20 * 68)
.EUt(GTValues.VHA[GTValues.ULV])
//#endregion
//#region Basic dusty ore centrifuging
// These have special recipes
const DUSTY_ORE_EXCEPTIONS = [
GTMaterials.Goethite,
GTMaterials.Cassiterite,
GTMaterials.Bauxite
]
// Otherwise everything else just centrifuges into its dust version
forEachMaterial(material => {
if (DUSTY_ORE_EXCEPTIONS.indexOf(material) >= 0)
return;
const dustyOre = ChemicalHelper.get(TFGTagPrefix.dustyRawOre, material, 1)
const dust = ChemicalHelper.get(TagPrefix.dust, material, 1)
if (dustyOre !== null && dust !== null) {
event.recipes.gtceu.centrifuge(`tfg:dusty_to_dust_${material.getName()}`)
.itemInputs(dustyOre)
.itemOutputs(dust)
.duration(20 * 45)
.EUt(GTValues.VA[GTValues.MV])
}
})
event.recipes.gtceu.centrifuge('tfg:dusty_to_dust_goethite')
.itemInputs('#forge:dusty_raw_materials/goethite')
.chancedItemOutputLogic($ChanceLogic.XOR)
.chancedOutput('#forge:dusts/iron', 5000, 0)
.chancedOutput('#forge:dusts/copper', 5000, 0)
.duration(20 * 45)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.centrifuge('tfg:dusty_to_dust_bauxite')
.itemInputs('#forge:dusty_raw_materials/bauxite')
.itemOutputs('#forge:dusts/aluminium')
.duration(20 * 45)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.centrifuge('tfg:dusty_to_dust_tin')
.itemInputs('#forge:dusty_raw_materials/cassiterite')
.itemOutputs('#forge:dusts/tin')
.duration(20 * 45)
.EUt(GTValues.VA[GTValues.MV])
// Ostrum Harvester
event.recipes.gtceu.ostrum_harvester(`tfg:ostrum_harvesting`)
.perTick(true)
.inputFluids('gtceu:drilling_fluid 4')
.perTick(false)
.dimension('ad_astra:mars')
.itemOutputsRanged('gtceu:ostrum_dust', 1, 5)
.duration(20 * 30)
.duration(20 * 30)
.EUt(GTValues.VA[GTValues.LV]);
// Ostrum Linear Accelerator Recipes
event.recipes.gtceu.ostrum_linear_accelerator('tfg:ostrum_transformation')
.inputFluids('gtceu:residual_radioactive_concoction 1000')
.itemInputs('32x #forge:dusts/ostrum')
.chancedFluidOutputLogic($ChanceLogic.XOR)
.chancedFluidOutput('gtceu:lightweight_ostrum_vapor', 6000, 0)
.chancedFluidOutput('gtceu:ostrum_vapor', 3000, 0)
.chancedFluidOutput('gtceu:dense_ostrum_vapor', 1000, 0)
.dimension('ad_astra:mars')
.duration(20 * 5)
.EUt(GTValues.VA[GTValues.EV]);
event.recipes.gtceu.ostrum_linear_accelerator('tfg:lightweight_ostrum')
.inputFluids('gtceu:lightweight_ostrum_vapor 1000')
.inputFluids('gtceu:residual_radioactive_concoction 100')
.inputFluids(Fluid.of('gtceu:heavy_water', 1000))
.itemOutputsRanged('#forge:dusty_raw_materials/pitchblende', 1, 10)
.itemOutputsRanged('#forge:dusty_raw_materials/silver', 1, 10)
.itemOutputsRanged('#forge:dusty_raw_materials/tricalcium_phosphate', 1, 10)
.dimension('ad_astra:mars')
.duration(20 * 5)
.EUt(GTValues.VA[GTValues.IV]);
event.recipes.gtceu.ostrum_linear_accelerator('tfg:ostrum')
.inputFluids('gtceu:ostrum_vapor 1000')
.inputFluids('gtceu:residual_radioactive_concoction 100')
.inputFluids(Fluid.of('gtceu:radon', 100))
.itemOutputsRanged(Item.of('#forge:dusty_raw_materials/bauxite'), 1, 10)
.itemOutputsRanged(Item.of('#forge:dusty_raw_materials/lead'), 1, 10)
.itemOutputsRanged(Item.of('#forge:dusty_raw_materials/beryllium'), 1, 10)
.dimension('ad_astra:mars')
.duration(20 * 5)
.EUt(GTValues.VA[GTValues.IV]);
event.recipes.gtceu.ostrum_linear_accelerator('tfg:dense_ostrum')
.inputFluids('gtceu:dense_ostrum_vapor 1000')
.inputFluids('gtceu:residual_radioactive_concoction 100')
.inputFluids(Fluid.of('gtceu:tritiated_water', 500))
.itemOutputsRanged(Item.of('#forge:dusty_raw_materials/thorium'), 1, 10)
.itemOutputsRanged(Item.of('#forge:dusty_raw_materials/uraninite'), 1, 10)
.dimension('ad_astra:mars')
.duration(20 * 5)
.EUt(GTValues.VA[GTValues.IV]);
//#endregion
}