Modpack-1.12.2/scripts/nc_script_addons/MoarFuels/superstable_isle_rec.zs
2022-11-01 19:14:43 +01:00

574 lines
45 KiB
Text
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
Copyright Bob Bartsch, 2021
This code is governed by the
Creative Commons AttributionNonCommercial License
https://creativecommons.org/licenses/by-nc/3.0/
(Meaning: credit me if you modify and/or redistribute
this code. Also, you may not sell this code.)
*/
#modloaded qmd
import crafttweaker.item.IIngredient;
import crafttweaker.item.IItemStack;
import crafttweaker.oredict.IOreDict;
import crafttweaker.oredict.IOreDictEntry;
import crafttweaker.liquid.ILiquidStack;
import mods.nuclearcraft.AlloyFurnace;
import mods.nuclearcraft.Assembler;
import mods.nuclearcraft.DecayHastener;
import mods.nuclearcraft.Infuser;
import mods.nuclearcraft.Separator;
import mods.nuclearcraft.FuelReprocessor;
import mods.nuclearcraft.PebbleFission;
import mods.nuclearcraft.SolidFission;
import mods.nuclearcraft.FissionIrradiator;
/* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- QMD Processing -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */
mods.qmd.target_chamber.addRecipe(<contenttweaker:einsteinium55>, ((<particle:alpha>*240000)^6000)~1.0, <contenttweaker:mendelevium58>, null, <particle:neutron>, null, 8000, 0.1, -3000, 0.0001);
mods.qmd.target_chamber.addRecipe(<contenttweaker:fermium57>, ((<particle:heffalumpMatter>*1920000)^15000)~1.0, <contenttweaker:flerovium98>, null, <particle:neutron>*2, null, 25000, 0.01, -13000, 0.0001);
mods.qmd.target_chamber.addRecipe(<contenttweaker:fermium57>, ((<particle:heffalumpMatter>*3840000)^30000)~1.0, <contenttweaker:darmstadtium294>, <particle:proton>*2, <particle:alpha>, null, 50000, 0.01, -33000, 0.0001);
val stuff = <contenttweaker:mysterymix>;
if(false){ //loadedMods has "thermalfoundation"
recipes.addShaped("mana",stuff,[[<ore:clathrateEnder>, <ore:dustPyrotheum>, <ore:clathrateOil>],[<ore:dustPetrotheum>, <ore:dustLead>, <ore:dustCryotheum>],[<ore:clathrateGlowstone>,<ore:dustAerotheum>,<ore:clathrateRedstone>]]);
mods.qmd.target_chamber.addRecipe(stuff, ((<particle:positron>*120000)^8000)~2.6, <ore:dustLead>, null, <particle:heffalumpMatter>, null, 20000, 1.0, 0, 0.0021);
}else{
recipes.addShaped("mana",stuff,[[<nuclearcraft:gem>, <nuclearcraft:gem:1>, <nuclearcraft:gem:2>],[<nuclearcraft:gem:6>, <ore:dustLead>, <nuclearcraft:gem:6>],[<nuclearcraft:gem:3>,<nuclearcraft:gem:4>,<nuclearcraft:gem:5>]]);
mods.qmd.target_chamber.addRecipe(stuff, ((<particle:calcium_48_ion>*120000)^40000)~2.6, <ore:dustLead>, <particle:heffalumpMatter>, null, null, 50000, 1.0, -25000, 0.0021);
}
/* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- QMD Fuels -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */
// this is a separate/extra multiplier beyond NC's base multiplier
// (meaning this only affects MoarFuels' fuels, while NC's config
// affects both NC's & MoarFuels' fuels)
// only accepts an integer value
val lifetimeMultiplier = 1;
//does all liquid stuff except isotope mixing & separation
function superMelt(item as IItemStack, array as ILiquidStack[], prod as ILiquidStack[], doub as double[], integs as int[], selfPriming as bool){
//array is molten, fluoride, FLiBe, dFLiBe, dF, dMolten
//prod is 4 actinides, 2 fission products
//doub is time, efficiency, radiation, decay factor
//integs is heat, criticality, fission product1 chance, fission product2 chance
//basic melter
mods.nuclearcraft.Melter.addRecipe(item, array[0]*144);
mods.nuclearcraft.IngotFormer.addRecipe(array[0]*144, item);
//fuel making
mods.nuclearcraft.ChemicalReactor.addRecipe(array[0]*72, <fluid:fluorine>*500, array[1]*72, null);
mods.nuclearcraft.Electrolyzer.addRecipe(array[1]*72, array[0]*72, <fluid:fluorine>*500, null, null);
mods.nuclearcraft.SaltMixer.addRecipe(array[1]*72, <fluid:flibe>*72, array[2]*72);
mods.nuclearcraft.Centrifuge.addRecipe(array[2]*72, array[1]*72, <fluid:flibe>*72, null, null, null, null);
//MSR recipe
mods.nuclearcraft.SaltFission.addRecipe(array[2], array[3], doub[0], integs[0], doub[1], integs[1], doub[3], selfPriming, doub[2]);
//reprocessing
mods.nuclearcraft.Centrifuge.addRecipe(array[3]*72, array[4]*72, <fluid:flibe>*72, null, null, null, null);
mods.nuclearcraft.Electrolyzer.addRecipe(array[4]*72, array[5]*72, <fluid:fluorine>*500, null, null);
val fisProd1 = mods.nuclearcraft.ChanceFluidIngredient.create(prod[4]*16, integs[2], 16);
val fisProd2 = mods.nuclearcraft.ChanceFluidIngredient.create(prod[5]*16, integs[3], 16);
mods.nuclearcraft.Centrifuge.addRecipe(array[5]*144, prod[0], prod[1], fisProd1, prod[2], prod[3], fisProd2);
}
/* -=-=-=-=- MIX Fuels -=-=-=-=-*/
val graphite = <ore:ingotGraphite>|<ore:dustGraphite>;
val zirconium = <ore:ingotZirconium>|<ore:dustZirconium>;
var fis = [[<contenttweaker:mendelevium58>,<contenttweaker:mendelevium58carbide>,<contenttweaker:mendelevium58oxide>,<contenttweaker:mendelevium58nitride>,<contenttweaker:mendelevium58zirconium>],[<contenttweaker:flerovium98>,<contenttweaker:flerovium98carbide>,<contenttweaker:flerovium98oxide>,<contenttweaker:flerovium98nitride>,<contenttweaker:flerovium98zirconium>],[<contenttweaker:darmstadtium294>,<contenttweaker:darmstadtium294carbide>,<contenttweaker:darmstadtium294oxide>,<contenttweaker:darmstadtium294nitride>,<contenttweaker:darmstadtium294zirconium>]] as IIngredient[][];
var fer = [[<ore:ingotAmericium243>,<ore:ingotAmericium243Carbide>,<ore:ingotAmericium243Oxide>,<ore:ingotAmericium243Nitride>,<ore:ingotAmericium243ZA>],[<ore:ingotNeptunium237>,<nuclearcraft:neptunium:6>,<ore:ingotNeptunium237Oxide>,<ore:ingotNeptunium237Nitride>,<nuclearcraft:neptunium:9>],[<contenttweaker:thorium229>,<contenttweaker:thorium229carbide>,<contenttweaker:thorium229oxide>,<contenttweaker:thorium229nitride>,<contenttweaker:thorium229zirconium>]] as IIngredient[][];
var decayRad = [0.788146499,5.26E-07,1.12E-04,3.70E-06,1.04E-05,3.85E-06] as double[];
var decayFactor =[0.11,0.11,0.11] as double[];
var FuelNames = [["mendelevium_fuel","mendelevium_fuel_carbide","mendelevium_fuel_oxide","mendelevium_fuel_nitride","mendelevium_fuel_zirconium"],["flerovium_fuel","flerovium_fuel_carbide","flerovium_fuel_triso","flerovium_fuel_oxide","flerovium_fuel_nitride","flerovium_fuel_zirconium"],["darmstadtium_fuel","darmstadtium_fuel_carbide","darmstadtium_fuel_triso","darmstadtium_fuel_oxide","darmstadtium_fuel_nitride","darmstadtium_fuel_zirconium"]] as string[][];
var allFuels = [[<contenttweaker:mendelevium_fuel>,<contenttweaker:mendelevium_fuel_carbide>,<contenttweaker:mendelevium_fuel_oxide>,<contenttweaker:mendelevium_fuel_nitride>,<contenttweaker:mendelevium_fuel_zirconium>],[<contenttweaker:flerovium_fuel>,<contenttweaker:flerovium_fuel_carbide>,<contenttweaker:flerovium_fuel_oxide>,<contenttweaker:flerovium_fuel_nitride>,<contenttweaker:flerovium_fuel_zirconium>],[<contenttweaker:darmstadtium_fuel>,<contenttweaker:darmstadtium_fuel_carbide>,<contenttweaker:darmstadtium_fuel_oxide>,<contenttweaker:darmstadtium_fuel_nitride>,<contenttweaker:darmstadtium_fuel_zirconium>]] as IItemStack[][];
var fuelN2 = [<contenttweaker:mendelevium_fuel>,<contenttweaker:flerovium_fuel>,<contenttweaker:darmstadtium_fuel>] as IItemStack[];
// time, heat, criticality
var fuelStats = [[[lifetimeMultiplier*1200,3389,21],[lifetimeMultiplier*768,5295,14],[lifetimeMultiplier*864,4707,15]],[[lifetimeMultiplier*7100,1696,60],[lifetimeMultiplier*4544,2650,41],[lifetimeMultiplier*4176,5109,29]],[[lifetimeMultiplier*5800,3678,40],[lifetimeMultiplier*3712,5748,27],[lifetimeMultiplier*5112,2356,43]]] as int[][][];
var fuelCrits = [[17],[48],[32]] as int[][];
val fuelPrime = [true,true,true] as bool[];
var trisoFuels = [<contenttweaker:mendelevium_fuel_triso>,<contenttweaker:flerovium_fuel_triso>,<contenttweaker:darmstadtium_fuel_triso>] as IItemStack[];
var dFuels = [[<contenttweaker:dmendelevium_fuel_triso>,<contenttweaker:dmendelevium_fuel_oxide>,<contenttweaker:dmendelevium_fuel_nitride>,<contenttweaker:dmendelevium_fuel_zirconium>],[<contenttweaker:dflerovium_fuel_triso>,<contenttweaker:dflerovium_fuel_oxide>,<contenttweaker:dflerovium_fuel_nitride>,<contenttweaker:dflerovium_fuel_zirconium>],[<contenttweaker:ddarmstadtium_fuel_triso>,<contenttweaker:ddarmstadtium_fuel_oxide>,<contenttweaker:ddarmstadtium_fuel_nitride>,<contenttweaker:ddarmstadtium_fuel_zirconium>]] as IIngredient[][];
var dFuels2 = [[<contenttweaker:dmendelevium_fuel_triso>,<contenttweaker:dmendelevium_fuel_oxide>,<contenttweaker:dmendelevium_fuel_nitride>,<contenttweaker:dmendelevium_fuel_zirconium>],[<contenttweaker:dflerovium_fuel_triso>,<contenttweaker:dflerovium_fuel_oxide>,<contenttweaker:dflerovium_fuel_nitride>,<contenttweaker:dflerovium_fuel_zirconium>],[<contenttweaker:ddarmstadtium_fuel_triso>,<contenttweaker:ddarmstadtium_fuel_oxide>,<contenttweaker:ddarmstadtium_fuel_nitride>,<contenttweaker:ddarmstadtium_fuel_zirconium>]] as IItemStack[][];
// time, heat, criticality
var trisoStats = [[lifetimeMultiplier*960,4236,14],[lifetimeMultiplier*5680,2120,51],[lifetimeMultiplier*4640,4598,27]] as int[][];
// efficiency, radiation
var trisoStatsAlt = [[2.15,1.24E-02],[4.0,2.71E-04],[6.0,2.59E-04]] as double[][];
// MRR Compat
if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") {
trisoStatsAlt = [[2.15,6.67E-03],[4.0,2.21E-04],[6.0,0.0002114613636]] as double[][];
}
var fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create(<ore:dustCaesium137>, 25);
var fisProd2 = mods.nuclearcraft.ChanceItemIngredient.create(<ore:dustEuropium155>, 25);
var fluidFuelNames= [[<fluid:mix_258>,<fluid:mix_258_fluoride>,<fluid:mix_258_fluoride_flibe>,<fluid:depleted_mix_258_fluoride_flibe>,<fluid:depleted_mix_258_fluoride>,<fluid:depleted_mix_258>],[<fluid:mix_298>,<fluid:mix_298_fluoride>,<fluid:mix_298_fluoride_flibe>,<fluid:depleted_mix_298_fluoride_flibe>,<fluid:depleted_mix_298_fluoride>,<fluid:depleted_mix_298>],[<fluid:mix_294>,<fluid:mix_294_fluoride>,<fluid:mix_294_fluoride_flibe>,<fluid:depleted_mix_294_fluoride_flibe>,<fluid:depleted_mix_294_fluoride>,<fluid:depleted_mix_294>]] as ILiquidStack[][];
var fluidProd= [[<fluid:curium_245>*32,<fluid:curium_246>*48,<fluid:californium_249>*32,<fluid:californium_251>*16,<fluid:caesium_137>,<fluid:europium_155>],[<fluid:plutonium_239>*32,<fluid:americium_242>*16,<fluid:americium_243>*48,<fluid:curium_246>*32,<fluid:promethium_147>,<fluid:europium_155>],[<fluid:tbu>*16,<fluid:uranium_235>*16,<fluid:uranium_238>*48,<fluid:plutonium_239>*48,<fluid:promethium_147>,<fluid:europium_155>]] as ILiquidStack[][];
var moltenTimes = [8.333333333, 49.30555556, 40.27777778] as double[];
//oreDic
var oreDictList = ["ingotMIX258All","ingotMIX298All","ingotMIX294All","ingotDepletedMIX258All","ingotDepletedMIX298All","ingotDepletedMIX294All"] as string[];
for entry in oreDictList {
oreDict.entry;
}
var realOreDictList = [<ore:ingotMIX258All>,<ore:ingotMIX298All>,<ore:ingotMIX294All>,<ore:ingotDepletedMIX258All>,<ore:ingotDepletedMIX298All>,<ore:ingotDepletedMIX294All>] as IOreDictEntry[];
for i,array in allFuels{
for j,item in array{
//crafting
recipes.addShapeless(FuelNames[i][j],item * 9,[fis[i][j], fer[i][j], fer[i][j], fer[i][j], fer[i][j], fer[i][j], fer[i][j], fer[i][j], fer[i][j]]);
mods.nuclearcraft.Radiation.setRadiationLevel(item, decayRad[i]);
realOreDictList[i].add(item);
}
//non-crafting recipes
mods.nuclearcraft.AlloyFurnace.addRecipe(array[0], graphite, array[1]);
mods.nuclearcraft.Infuser.addRecipe(array[0], <fluid:oxygen>*1000, array[2]);
mods.nuclearcraft.Infuser.addRecipe(array[0], <fluid:nitrogen>*1000, array[3]);
mods.nuclearcraft.AlloyFurnace.addRecipe(array[0], zirconium, array[4]);
furnace.addRecipe(fuelN2[i], array[3]);
furnace.addRecipe(fuelN2[i], array[2]);
mods.nuclearcraft.Separator.addRecipe(array[1], array[0], <nuclearcraft:dust:8>);
mods.nuclearcraft.Separator.addRecipe(array[4], array[0], <nuclearcraft:dust:10>);
mods.nuclearcraft.Separator.addRecipe(array[0]*9, fis[i][0], fer[i][0]*8);
//pebbles
mods.nuclearcraft.Assembler.addRecipe(array[1]*9, <ore:dustGraphite>, <nuclearcraft:part:15>, <nuclearcraft:alloy:13>, trisoFuels[i]*9);
if (oreDict has "QuantumTraverseWhyCanISteamMyCrabs") {
mods.nuclearcraft.SolidFission.addRecipe(trisoFuels[i], dFuels[i][0], fuelStats[i][2][0], fuelStats[i][2][1], trisoStatsAlt[i][0], fuelStats[i][2][2], decayFactor[i], fuelPrime[i], trisoStatsAlt[i][1]);
}else{
mods.nuclearcraft.PebbleFission.addRecipe(trisoFuels[i], dFuels[i][0], trisoStats[i][0], trisoStats[i][1], trisoStatsAlt[i][0], trisoStats[i][2], decayFactor[i], fuelPrime[i], trisoStatsAlt[i][1]);
}
mods.nuclearcraft.Radiation.setRadiationLevel(trisoFuels[i], decayRad[i]);
realOreDictList[i].add(trisoFuels[i]);
//oxide
mods.nuclearcraft.SolidFission.addRecipe(array[2], dFuels[i][1], trisoStats[i][0], trisoStats[i][1], trisoStatsAlt[i][0], fuelCrits[i][0], decayFactor[i], fuelPrime[i], trisoStatsAlt[i][1]);
//nitride
mods.nuclearcraft.SolidFission.addRecipe(array[3], dFuels[i][2], fuelStats[i][0][0], fuelStats[i][0][1], trisoStatsAlt[i][0], fuelStats[i][0][2], decayFactor[i], fuelPrime[i], trisoStatsAlt[i][1]);
//zirconium
mods.nuclearcraft.SolidFission.addRecipe(array[4], dFuels[i][3], fuelStats[i][1][0], fuelStats[i][1][1], trisoStatsAlt[i][0], fuelStats[i][1][2], decayFactor[i], fuelPrime[i], trisoStatsAlt[i][1]);
//melting time
superMelt(array[0], fluidFuelNames[i], fluidProd[i], [moltenTimes[i], trisoStatsAlt[i][0], trisoStatsAlt[i][1], decayFactor[i]] as double[], [fuelStats[i][0][1],fuelCrits[i][0],25,25] as int[], true);
}
// reprocessing
var ddecayRad = [7.61E-03,1.73E-02,1.64E-02,1.90E-03,5.69E-03,9.22E-04] as double[];
var dIso = [[[<nuclearcraft:curium:6>*2,<nuclearcraft:curium:11>*3,<ore:ingotCalifornium249Carbide>*2,<ore:ingotCalifornium251Carbide>], [<nuclearcraft:curium:7>*2,<nuclearcraft:curium:12>*3,<ore:ingotCalifornium249Oxide>*2,<ore:ingotCalifornium251Oxide>], [<nuclearcraft:curium:8>*2,<nuclearcraft:curium:13>*3,<ore:ingotCalifornium249Nitride>*2,<ore:ingotCalifornium251Nitride>], [<nuclearcraft:curium:9>*2,<nuclearcraft:curium:14>*3,<ore:ingotCalifornium249ZA>*2,<ore:ingotCalifornium251ZA>]], [[<nuclearcraft:plutonium:6>*2,<ore:ingotAmericium242Carbide>,<ore:ingotAmericium243Carbide>*3,<nuclearcraft:curium:11>*2],[<nuclearcraft:plutonium:7>*2,<ore:ingotAmericium242Oxide>,<ore:ingotAmericium243Oxide>*3,<nuclearcraft:curium:12>*2],[<nuclearcraft:curium:8>*2,<ore:ingotAmericium242Nitride>,<nuclearcraft:americium:13>*3,<nuclearcraft:curium:13>*2],[<nuclearcraft:curium:9>*2,<ore:ingotAmericium242ZA>,<ore:ingotAmericium243ZA>*3,<nuclearcraft:curium:14>*2]],[[<ore:ingotTBUCarbide>,<ore:ingotUranium235Carbide>,<nuclearcraft:uranium:11>*3,<nuclearcraft:plutonium:11>*3],[<ore:ingotTBUOxide>,<ore:ingotUranium235Oxide>,<nuclearcraft:uranium:12>*3,<nuclearcraft:plutonium:12>*3],[<ore:ingotTBUNitride>,<ore:ingotUranium235Nitride>,<nuclearcraft:uranium:13>*3,<nuclearcraft:plutonium:13>*3],[<ore:ingotTBUZA>,<ore:ingotUranium235ZA>,<nuclearcraft:uranium:14>*3,<nuclearcraft:plutonium:14>*3]]] as IIngredient[][][];
for i,array in dFuels{
if(i==1){
fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create(<ore:dustPromethium147>, 25);
}
//triso
mods.nuclearcraft.FuelReprocessor.addRecipe(array[0].amount(9), dIso[i][0][0], dIso[i][0][1], fisProd1, <ore:dustGraphite>.amount(3), dIso[i][0][2], dIso[i][0][3], fisProd2, <nuclearcraft:alloy:13>);
//oxide
mods.nuclearcraft.FuelReprocessor.addRecipe(array[1].amount(9), dIso[i][1][0], dIso[i][1][1], fisProd1, null, dIso[i][1][2], dIso[i][1][3], fisProd2, null);
//nitride
mods.nuclearcraft.FuelReprocessor.addRecipe(array[2].amount(9), dIso[i][2][0], dIso[i][2][1], fisProd1, null, dIso[i][2][2], dIso[i][2][3], fisProd2, null);
//zirc
mods.nuclearcraft.FuelReprocessor.addRecipe(array[3].amount(9), dIso[i][3][0], dIso[i][3][1], fisProd1, <nuclearcraft:dust:10>, dIso[i][3][2], dIso[i][3][3], fisProd2, null);
for j,item in array{
mods.nuclearcraft.Radiation.setRadiationLevel(item, ddecayRad[i]);
realOreDictList[i+3].add(dFuels2[i][j]);
}
}
/* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- PBU & LUF Time -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */
oreDict.ingotPBU;
<ore:ingotPBU>.add(<contenttweaker:pbu>);
oreDict.ingotPBUAll;
oreDict.ingotUranium232;
<ore:ingotUranium232>.add(<contenttweaker:uranium_232>);
oreDict.ingotLUF;
<ore:ingotLUF>.add(<contenttweaker:luf>);
oreDict.ingotLUFAll;
//<ore:dustProtactinium231>.add(<contenttweaker:pa_pellet_slow>);
//<ore:dustProtactinium231>.add(<contenttweaker:pa_pellet_fast>);
//recipes.addShaped(<contenttweaker:pa_pellet_slow>*3,[[<ore:dustProtactinium231>],[<ore:dustProtactinium231>],[<ore:dustProtactinium231>]]);
//recipes.addShaped(<contenttweaker:pa_pellet_fast>*3,[[<ore:dustProtactinium231>,<ore:dustProtactinium231>,<ore:dustProtactinium231>]]);
// MRR Compat
if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") {
mods.nuclearcraft.Radiation.setRadiationLevel(<ore:ingotUranium232>, 2.12E-02);
mods.nuclearcraft.DecayHastener.addRecipe(<ore:ingotUranium232>, <ore:dustLead>, 1.0, 1.0, 2.12E-02);
mods.nuclearcraft.FissionIrradiator.removeRecipeWithInput(<ore:dustProtactinium231>);
mods.nuclearcraft.FissionIrradiator.addRecipe(<ore:dustProtactinium231>, <ore:ingotPBU>, 5833, 0.8, 0.0, 3.05E-05);
//mods.nuclearcraft.FissionIrradiator.addRecipe(<contenttweaker:pa_pellet_fast>, <ore:dustProtactinium233>, 151000, 0.05, 0.0, 3.05E-05);
//mods.nuclearcraft.FissionIrradiator.addRecipe(<contenttweaker:pa_pellet_slow>, <ore:ingotPBU>, 5833, 2.5, 0.0, 3.05E-05);
mods.nuclearcraft.FissionIrradiator.addRecipe(<ore:ingotPBU>, <ore:ingotUranium232>, 99167, 8.0, 0.0, 1.33E-03);
}else{
mods.nuclearcraft.Radiation.setRadiationLevel(<ore:ingotUranium232>, 1.45E-02);
mods.nuclearcraft.DecayHastener.addRecipe(<ore:ingotUranium232>, <ore:dustLead>, 1.0, 1.0, 1.45E-02);
mods.nuclearcraft.FissionIrradiator.removeRecipeWithInput(<ore:dustProtactinium231>);
mods.nuclearcraft.FissionIrradiator.addRecipe(<ore:dustProtactinium231>, <ore:ingotPBU>, 142222, 0.8, 0.0, 1.56E-04);
//mods.nuclearcraft.FissionIrradiator.addRecipe(<contenttweaker:pa_pellet_fast>, <ore:dustProtactinium233>, 3840000, 0.05, 0.0, 1.56E-04);
//mods.nuclearcraft.FissionIrradiator.addRecipe(<contenttweaker:pa_pellet_slow>, <ore:ingotPBU>, 142222, 2.5, 0.0, 1.56E-04);
mods.nuclearcraft.FissionIrradiator.addRecipe(<ore:ingotPBU>, <ore:ingotUranium232>, 2417778, 8.0, 0.0, 8.35E-04);
}
mods.nuclearcraft.Assembler.addRecipe(<ore:ingotUranium232>, null, null, null, <ore:ingotLUF>);
recipes.addShapeless(<contenttweaker:luf>*9,[<ore:ingotUranium232>, <ore:ingotUranium232>, <ore:ingotUranium232>, <ore:ingotUranium232>, <ore:ingotUranium233>, <ore:ingotUranium232>, <ore:ingotUranium232>, <ore:ingotUranium232>, <ore:ingotUranium232>]);
// does all the needed things (with toggle-able reprocessing)
function theMediumCheeseWithFries(pellet as IItemStack[], triso as IItemStack, dpellet as IIngredient[], dpellet2 as IItemStack[], fuelInts as int[][], integs as int[], fuelDoubles as double[], array as ILiquidStack[], prod as ILiquidStack[], solidProd as IIngredient[][], selfPriming as bool, oreNames as IOreDictEntry[], reprocQ as bool){
//fis/fert/pellet is [normal,carbide,oxide,nitride,za]
//dpellet is [tr, ox, ni, za]
//fuelInts is [time, heat, criticality] for [ox, ni, za, trisoSFR]
//integs is [enrichment, fisProd1 base chance, fisProd2 base chance, affected chance reprocessing ingredient]
//fuelDoubles is [efficiency, base radiation, burn radiation, depleted radiation, MSR time, decay factor]
//array is molten, fluoride, FLiBe, dFLiBe, dF, dMolten
//prod is 4 actinides, 2 fission products as liquids
//solidProd is 4 actinides, 2 fission products as items
//reprocQ determines whether reprocessing is done
for i,item in pellet{
mods.nuclearcraft.Radiation.setRadiationLevel(item, fuelDoubles[1]);
oreNames[0].add(item);
}
//non-crafting recipes
mods.nuclearcraft.AlloyFurnace.addRecipe(pellet[0], <ore:ingotGraphite>|<ore:dustGraphite>, pellet[1]);
mods.nuclearcraft.Infuser.addRecipe(pellet[0], <fluid:oxygen>*1000, pellet[2]);
mods.nuclearcraft.Infuser.addRecipe(pellet[0], <fluid:nitrogen>*1000, pellet[3]);
mods.nuclearcraft.AlloyFurnace.addRecipe(pellet[0], <ore:ingotZirconium>|<ore:dustZirconium>, pellet[4]);
furnace.addRecipe(pellet[0], pellet[3]);
furnace.addRecipe(pellet[0], pellet[2]);
mods.nuclearcraft.Separator.addRecipe(pellet[1], pellet[0], <nuclearcraft:dust:8>);
mods.nuclearcraft.Separator.addRecipe(pellet[4], pellet[0], <nuclearcraft:dust:10>);
//pebbles
mods.nuclearcraft.Assembler.addRecipe(pellet[1]*9, <ore:dustGraphite>, <nuclearcraft:part:15>, <nuclearcraft:alloy:13>, triso*9);
mods.nuclearcraft.Radiation.setRadiationLevel(triso, fuelDoubles[1]);
oreNames[0].add(triso);
if (oreDict has "QuantumTraverseWhyCanISteamMyCrabs") {
mods.nuclearcraft.SolidFission.addRecipe(triso, dpellet[0], fuelInts[3][0], fuelInts[3][1], fuelDoubles[0], fuelInts[3][2], fuelDoubles[5], selfPriming, fuelDoubles[2]);
}else{
mods.nuclearcraft.PebbleFission.addRecipe(triso, dpellet[0], fuelInts[0][0], fuelInts[0][1], fuelDoubles[0], fuelInts[2][2], fuelDoubles[5], selfPriming, fuelDoubles[2]);
}
//oxide
mods.nuclearcraft.SolidFission.addRecipe(pellet[2], dpellet[1], fuelInts[0][0], fuelInts[0][1], fuelDoubles[0], fuelInts[0][2], fuelDoubles[5], selfPriming, fuelDoubles[2]);
//nitride
mods.nuclearcraft.SolidFission.addRecipe(pellet[3], dpellet[2], fuelInts[1][0], fuelInts[1][1], fuelDoubles[0], fuelInts[1][2], fuelDoubles[5], selfPriming, fuelDoubles[2]);
//zirconium
mods.nuclearcraft.SolidFission.addRecipe(pellet[4], dpellet[3], fuelInts[2][0], fuelInts[2][1], fuelDoubles[0], fuelInts[2][2], fuelDoubles[5], selfPriming, fuelDoubles[2]);
//melting time
superMelt(pellet[0], array, prod, [fuelDoubles[4], fuelDoubles[0], fuelDoubles[2], fuelDoubles[5]] as double[], [fuelInts[1][1],fuelInts[0][2], integs[1], integs[2]] as int[], selfPriming);
//decayed fuel stuff
for i,item in dpellet{
mods.nuclearcraft.Radiation.setRadiationLevel(item, fuelDoubles[3]);
oreNames[1].add(dpellet2[i]);
}
if(reprocQ){
var num = 9-integs[0] as int;
var num2 = integs[0] as int;
val fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create(solidProd[0][4] * num2, integs[1]);
val fisProd2 = mods.nuclearcraft.ChanceItemIngredient.create(solidProd[0][5] * num2, integs[2]);
//reprocessing time
num = 1+integs[0] as int;
num2 = 5+integs[0] as int;
var graphite = mods.nuclearcraft.ChanceItemIngredient.create(<ore:dustGraphite> * num2, 50);
var zirconium = mods.nuclearcraft.ChanceItemIngredient.create(<nuclearcraft:dust:10> * num, 50);
if(integs[0]==1){
graphite = <ore:dustGraphite> * (num2/2);
zirconium = <nuclearcraft:dust:10> * (num/2);
}
//triso
mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[0] * 9, solidProd[0][0], solidProd[0][1], fisProd1, graphite, solidProd[0][2], solidProd[0][3], fisProd2, <nuclearcraft:alloy:13>);
//oxide
mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[1] * 9, solidProd[1][0], solidProd[1][1], fisProd1, null, solidProd[1][2], solidProd[1][3], fisProd2, null);
//nitride
mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[2] * 9, solidProd[2][0], solidProd[2][1], fisProd1, null, solidProd[2][2], solidProd[2][3], fisProd2, null);
//zirc
mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[3] * 9, solidProd[3][0], solidProd[3][1], fisProd1, zirconium, solidProd[3][2], solidProd[3][3], fisProd2, null);
}
}
var pbu_rads = [8.35E-04,4.27E-05,1.90E-03] as double[]; //base, burn, depleted
var luf_rads = [1.45E-02,4.92E-04,1.70E-02] as double[];
if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") {
pbu_rads = [1.33E-03,4.66E-05,1.66E-03];
luf_rads = [2.12E-02,5.87E-04,1.64E-02];
}
theMediumCheeseWithFries([<contenttweaker:pbu>,<contenttweaker:pbu_c>,<contenttweaker:pbu_ox>,<contenttweaker:pbu_ni>,<contenttweaker:pbu_za>], <contenttweaker:pbu_tr>, [<contenttweaker:d_pbu_tr>,<contenttweaker:d_pbu_ox>,<contenttweaker:d_pbu_ni>,<contenttweaker:d_pbu_za>], [<contenttweaker:d_pbu_tr>,<contenttweaker:d_pbu_ox>,<contenttweaker:d_pbu_ni>,<contenttweaker:d_pbu_za>], [[7024,82,118],[8727,66,148],[5592,103,100],[6330,91,106]], [1, 30, 20, 4], [1.10, pbu_rads[0], pbu_rads[1], pbu_rads[2], 60.60416667, 0.050], [<fluid:pbu>,<fluid:pbu_fluoride>,<fluid:pbu_fluoride_flibe>,<fluid:depleted_pbu_fluoride_flibe>,<fluid:depleted_pbu_fluoride>,<fluid:depleted_pbu>], [<fluid:uranium_233>*32,<fluid:uranium_235>,<fluid:neptunium_236>*32,<fluid:neptunium_237>*48,<fluid:strontium_90>,<fluid:caesium_137>], [[<nuclearcraft:uranium:1>*2,<nuclearcraft:uranium:6>,<nuclearcraft:neptunium:1>*2,<nuclearcraft:neptunium:6>*3,<ore:dustStrontium90>,<ore:dustCaesium137>],[<nuclearcraft:uranium:2>*2,<nuclearcraft:uranium:7>,<nuclearcraft:neptunium:2>*2,<nuclearcraft:neptunium:7>*3,<ore:dustStrontium90>,<ore:dustCaesium137>],[<nuclearcraft:uranium:3>*2,<nuclearcraft:uranium:8>,<nuclearcraft:neptunium:3>*2,<nuclearcraft:neptunium:8>*3,<ore:dustStrontium90>,<ore:dustCaesium137>],[<nuclearcraft:uranium:4>*2,<nuclearcraft:uranium:9>,<nuclearcraft:neptunium:4>*2,<nuclearcraft:neptunium:9>*3,<ore:dustStrontium90>,<ore:dustCaesium137>]], false, [<ore:ingotPBUAll>,<ore:ingotDepletedPBUAll>], true);
//fis/fert/pellet is [normal,carbide,oxide,nitride,za]
//dpellet is [tr, ox, ni, za]
//fuelInts is [time, heat, criticality] for [ox, ni, za, trisoSFR]
//integs is [enrichment, fisProd1 base chance, fisProd2 base chance, affected chance reprocessing ingredient]
//fuelDoubles is [efficiency, base radiation, burn radiation, depleted radiation, MSR time, decay factor]
//array is molten, fluoride, FLiBe, dFLiBe, dF, dMolten
//prod is 4 actinides, 2 fission products as liquids
//solidProd is 4 actinides, 2 fission products as items
theMediumCheeseWithFries([<contenttweaker:luf>,<contenttweaker:luf_c>,<contenttweaker:luf_ox>,<contenttweaker:luf_ni>,<contenttweaker:luf_za>], <contenttweaker:luf_tr>, [<contenttweaker:d_luf_tr>,<contenttweaker:d_luf_ox>,<contenttweaker:d_luf_ni>,<contenttweaker:d_luf_za>], [<contenttweaker:d_luf_tr>,<contenttweaker:d_luf_ox>,<contenttweaker:d_luf_ni>,<contenttweaker:d_luf_za>], [[6063,855,24],[7580,684,30],[4840,1069,20],[5434,950,22]], [9, 25, 25, 4], [1.30, luf_rads[0], luf_rads[1], luf_rads[2], 52.63888889, 0.055], [<fluid:luf>,<fluid:luf_fluoride>,<fluid:luf_fluoride_flibe>,<fluid:depleted_luf_fluoride_flibe>,<fluid:depleted_luf_fluoride>,<fluid:depleted_luf>], [<fluid:uranium_234>*16,<fluid:uranium_235>*16,<fluid:neptunium_236>*16,<fluid:neptunium_237>*16,<fluid:strontium_90>,<fluid:caesium_137>], [[null]], false, [<ore:ingotLUFAll>,<ore:ingotDepletedLUFAll>], false);
//external processing
fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create(<ore:dustStrontium90> * 9, 25);
fisProd2 = mods.nuclearcraft.ChanceItemIngredient.create(<ore:dustCaesium137> * 9, 25);
//triso
mods.nuclearcraft.FuelReprocessor.addRecipe(<contenttweaker:d_luf_tr> * 9, <ore:ingotUranium234>, <nuclearcraft:uranium:6>, fisProd1, <ore:dustGraphite>*8, <nuclearcraft:neptunium:1>, <nuclearcraft:neptunium:6>, fisProd2, <nuclearcraft:alloy:13>);
//oxide
mods.nuclearcraft.FuelReprocessor.addRecipe(<contenttweaker:d_luf_ox> * 9, <ore:ingotUranium234>, <nuclearcraft:uranium:7>, fisProd1, null, <nuclearcraft:neptunium:2>, <nuclearcraft:neptunium:7>, fisProd2, null);
//nitride
mods.nuclearcraft.FuelReprocessor.addRecipe(<contenttweaker:d_luf_ni> * 9, <ore:ingotUranium234>, <nuclearcraft:uranium:8>, fisProd1, null, <nuclearcraft:neptunium:3>, <nuclearcraft:neptunium:8>, fisProd2, null);
//zirc
mods.nuclearcraft.FuelReprocessor.addRecipe(<contenttweaker:d_luf_za> * 9, <ore:ingotUranium234>, <nuclearcraft:uranium:9>, fisProd1, <ore:dustZirconium>*6, <nuclearcraft:neptunium:4>, <nuclearcraft:neptunium:9>, fisProd2, null);
fisProd1 = mods.nuclearcraft.ChanceFluidIngredient.create(<fluid:strontium_90>*144, 25, 16);
fisProd2 = mods.nuclearcraft.ChanceFluidIngredient.create(<fluid:caesium_137>*144, 25, 16);
mods.nuclearcraft.Centrifuge.removeRecipeWithInput(<fluid:depleted_luf>*144);
mods.nuclearcraft.Centrifuge.addRecipe(<fluid:depleted_luf>*144, <fluid:uranium_234>*16,<fluid:uranium_235>*16,fisProd1,<fluid:neptunium_236>*16,<fluid:neptunium_237>*16,fisProd2);
/* -=-=-=-=- UBU & Pa-231 Based Fuels -=-=-=-=-*/
val paFuels = [[<contenttweaker:protactinium_fuel>,<contenttweaker:protactinium_fuel_carbide>,<contenttweaker:protactinium_fuel_oxide>,<contenttweaker:protactinium_fuel_nitride>,<contenttweaker:protactinium_fuel_zirconium>],[<contenttweaker:hprotactinium_fuel>,<contenttweaker:hprotactinium_fuel_carbide>,<contenttweaker:hprotactinium_fuel_oxide>,<contenttweaker:hprotactinium_fuel_nitride>,<contenttweaker:hprotactinium_fuel_zirconium>],[<contenttweaker:ubu_fuel>,<contenttweaker:ubu_fuel_carbide>,<contenttweaker:ubu_fuel_oxide>,<contenttweaker:ubu_fuel_nitride>,<contenttweaker:ubu_fuel_zirconium>]] as IItemStack[][];
val dpaFuels = [[<contenttweaker:dprotactinium_fuel_triso>,<contenttweaker:dprotactinium_fuel_oxide>,<contenttweaker:dprotactinium_fuel_nitride>,<contenttweaker:dprotactinium_fuel_zirconium>],[<contenttweaker:dhprotactinium_fuel_triso>,<contenttweaker:dhprotactinium_fuel_oxide>,<contenttweaker:dhprotactinium_fuel_nitride>,<contenttweaker:dhprotactinium_fuel_zirconium>],[<contenttweaker:dubu_fuel_triso>,<contenttweaker:dubu_fuel_oxide>,<contenttweaker:dubu_fuel_nitride>,<contenttweaker:dubu_fuel_zirconium>]] as IIngredient[][];
val dpaFuels2 = [[<contenttweaker:dprotactinium_fuel_triso>,<contenttweaker:dprotactinium_fuel_oxide>,<contenttweaker:dprotactinium_fuel_nitride>,<contenttweaker:dprotactinium_fuel_zirconium>],[<contenttweaker:dhprotactinium_fuel_triso>,<contenttweaker:dhprotactinium_fuel_oxide>,<contenttweaker:dhprotactinium_fuel_nitride>,<contenttweaker:dhprotactinium_fuel_zirconium>],[<contenttweaker:dubu_fuel_triso>,<contenttweaker:dubu_fuel_oxide>,<contenttweaker:dubu_fuel_nitride>,<contenttweaker:dubu_fuel_zirconium>]] as IItemStack[][];
val paeff = [1.25,1.3,1.2] as double[];
val paStats = [[[lifetimeMultiplier*9600,60,160],[lifetimeMultiplier*12000,48,200],[lifetimeMultiplier*7680,75,136],[lifetimeMultiplier*8597,67,144]],[[lifetimeMultiplier*9600,180,80],[lifetimeMultiplier*12000,144,100],[lifetimeMultiplier*7680,225,68],[lifetimeMultiplier*8597,201,72]],[[lifetimeMultiplier*4500,128,96],[lifetimeMultiplier*5647,102,120],[lifetimeMultiplier*3600,160,82],[lifetimeMultiplier*4056,142,86]]] as int[][][];
var burnrad = [2.97E-05,8.90E-05,1.45E-05] as double[];
decayFactor = [0.065,0.045,0.045];
// MRR Compat
if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") {
burnrad = [2.61E-05,7.82E-05,2.12E-05] as double[];
}
val pebbles = [<contenttweaker:protactinium_fuel_triso>,<contenttweaker:hprotactinium_fuel_triso>,<contenttweaker:ubu_fuel_triso>] as IItemStack[];
fuelN2 = [<contenttweaker:protactinium_fuel>,<contenttweaker:hprotactinium_fuel>,<contenttweaker:ubu_fuel>] as IItemStack[];
fluidFuelNames= [[<fluid:lam_231>,<fluid:lam_231_fluoride>,<fluid:lam_231_fluoride_flibe>,<fluid:depleted_lam_231_fluoride_flibe>,<fluid:depleted_lam_231_fluoride>,<fluid:depleted_lam_231>],[<fluid:eam_231>,<fluid:eam_231_fluoride>,<fluid:eam_231_fluoride_flibe>,<fluid:depleted_eam_231_fluoride_flibe>,<fluid:depleted_eam_231_fluoride>,<fluid:depleted_eam_231>],[<fluid:ubu>,<fluid:ubu_fluoride>,<fluid:ubu_fluoride_flibe>,<fluid:depleted_ubu_fluoride_flibe>,<fluid:depleted_ubu_fluoride>,<fluid:depleted_ubu>]] as ILiquidStack[][];
fluidProd= [[<fluid:tbu>*64,<fluid:uranium_233>*16,<fluid:uranium_234>*16,<fluid:uranium_235>*32,<fluid:strontium_90>,<fluid:caesium_137>],[<fluid:uranium_233>*32,<fluid:uranium_234>*32,<fluid:uranium_235>*32,<fluid:neptunium_237>*16,<fluid:strontium_90>,<fluid:caesium_137>],[<fluid:uranium_235>*32,<fluid:neptunium_236>*16,<fluid:neptunium_237>*32,<fluid:uranium_238>*48,<fluid:molybdenum>,<fluid:caesium_137>]] as ILiquidStack[][];
moltenTimes = [83.33333333,83.33333333,39.21527778] as double[];
val fisProdChance = [[30,20],[90,60],[25,25]] as int[][];
//base recipe
mods.nuclearcraft.Assembler.addRecipe(<ore:ingotPBU>, <ore:ingotTBU>*8, null, null, paFuels[0][0]*9);
mods.nuclearcraft.Assembler.addRecipe(<ore:ingotPBU>*2, paFuels[0][0]*6, null, null, paFuels[1][0]*8);
oreDict.ingotUBU;
<ore:ingotUBU>.add(<contenttweaker:ubu_fuel>);
mods.nuclearcraft.FissionIrradiator.removeRecipeWithInput(<ore:ingotUranium234>);
mods.nuclearcraft.FissionIrradiator.addRecipe(<ore:ingotUranium234>, <ore:ingotUBU>, 106667, 0.0, 0.0, 4.07E-06);
mods.nuclearcraft.FissionIrradiator.addRecipe(<ore:ingotUBU>, <ore:ingotUranium235>, 1813333, 0.0, 0.0, 1.42E-09);
oreDictList = ["ingotLAM231All","ingotEAM231All","ingotUBUAll","ingotDepletedLAM231All","ingotDepletedEAM231All","ingotDepletedUBUAll"] as string[];
for entry in oreDictList {
oreDict.entry;
}
realOreDictList = [<ore:ingotLAM231All>,<ore:ingotEAM231All>,<ore:ingotUBUAll>,<ore:ingotDepletedLAM231All>,<ore:ingotDepletedEAM231All>,<ore:ingotDepletedUBUAll>] as IOreDictEntry[];
//non-base recipes
for i, array in paFuels{
for item in array{
mods.nuclearcraft.Radiation.setRadiationLevel(item, decayRad[i+3]);
realOreDictList[i].add(item);
}
mods.nuclearcraft.AlloyFurnace.addRecipe(array[0], graphite, array[1]);
mods.nuclearcraft.Infuser.addRecipe(array[0], <fluid:oxygen>*1000, array[2]);
mods.nuclearcraft.Infuser.addRecipe(array[0], <fluid:nitrogen>*1000, array[3]);
mods.nuclearcraft.AlloyFurnace.addRecipe(array[0], zirconium, array[4]);
furnace.addRecipe(fuelN2[i], array[3]);
furnace.addRecipe(fuelN2[i], array[2]);
mods.nuclearcraft.Separator.addRecipe(array[1], array[0], <nuclearcraft:dust:8>);
mods.nuclearcraft.Separator.addRecipe(array[4], array[0], <nuclearcraft:dust:10>);
//pebbles
mods.nuclearcraft.Assembler.addRecipe(array[1]*9, <ore:dustGraphite>, <nuclearcraft:part:15>, <nuclearcraft:alloy:13>, pebbles[i]*9);
if (oreDict has "QuantumTraverseWhyCanISteamMyCrabs") {
mods.nuclearcraft.SolidFission.addRecipe(pebbles[i], dpaFuels[i][0], paStats[i][3][0], paStats[i][3][1], paeff[i], paStats[i][3][2], decayFactor[i], false, burnrad[i]);
}else{
mods.nuclearcraft.PebbleFission.addRecipe(pebbles[i], dpaFuels[i][0], paStats[i][0][0], paStats[i][0][1], paeff[i], paStats[i][2][2], decayFactor[i], false, burnrad[i]);
}
mods.nuclearcraft.Radiation.setRadiationLevel(pebbles[i], decayRad[i+2]);
realOreDictList[i].add(trisoFuels[i]);
//oxide
mods.nuclearcraft.SolidFission.addRecipe(array[2], dpaFuels[i][1], paStats[i][0][0], paStats[i][0][1], paeff[i], paStats[i][0][2], decayFactor[i], false, burnrad[i]);
//nitride
mods.nuclearcraft.SolidFission.addRecipe(array[3], dpaFuels[i][2], paStats[i][1][0], paStats[i][1][1], paeff[i], paStats[i][1][2], decayFactor[i], false, burnrad[i]);
//zirconium
mods.nuclearcraft.SolidFission.addRecipe(array[4], dpaFuels[i][3], paStats[i][2][0], paStats[i][2][1], paeff[i], paStats[i][2][2], decayFactor[i], false, burnrad[i]);
//melting time
superMelt(array[0], fluidFuelNames[i], fluidProd[i], [moltenTimes[i], paeff[i], burnrad[i], decayFactor[i]] as double[], [paStats[i][0][1],paStats[i][0][2], fisProdChance[i][0], fisProdChance[i][1]] as int[], false);
}
fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create(<ore:dustStrontium90>, 30);
fisProd2 = mods.nuclearcraft.ChanceItemIngredient.create(<ore:dustCaesium137>, 20);
//reprocessing
//triso
mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[0][0] * 9, <ore:ingotTBUCarbide> * 4, <ore:ingotUranium233Carbide>, fisProd1, <ore:dustGraphite>.amount(4), <ore:ingotUranium234>, <nuclearcraft:uranium:6>*2, fisProd2, <nuclearcraft:alloy:13>);
//oxide
mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[0][1] * 9, <ore:ingotTBUOxide> * 4, <ore:ingotUranium233Oxide>, fisProd1, null, <ore:ingotUranium234>, <nuclearcraft:uranium:7>*2, fisProd2, null);
//nitride
mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[0][2] * 9, <ore:ingotTBUNitride> * 4, <ore:ingotUranium233Nitride>, fisProd1, null, <ore:ingotUranium234>, <nuclearcraft:uranium:8>*2, fisProd2, null);
//zirc
mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[0][3] * 9, <ore:ingotTBUZA> * 4, <ore:ingotUranium233ZA>, fisProd1, <nuclearcraft:dust:10> * 2, <ore:ingotUranium234>, <nuclearcraft:uranium:9>*2, fisProd2, null);
fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create(<ore:dustStrontium90>, 90);
fisProd2 = mods.nuclearcraft.ChanceItemIngredient.create(<ore:dustCaesium137>, 60);
//triso
mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[1][0] * 9, <ore:ingotUranium233Carbide>*2, <ore:ingotUranium234>*2, fisProd1, <ore:dustGraphite>.amount(6), <nuclearcraft:uranium:6>*2, <ore:ingotNeptunium237Carbide>, fisProd2, <nuclearcraft:alloy:13>);
//oxide
mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[1][1] * 9, <ore:ingotUranium233Oxide>*2, <ore:ingotUranium234>*2, fisProd1, null, <nuclearcraft:uranium:7>*2, <ore:ingotNeptunium237Oxide>, fisProd2, null);
//nitride
mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[1][2] * 9, <ore:ingotUranium233Nitride>*2, <ore:ingotUranium234>*2, fisProd1, null, <nuclearcraft:uranium:8>*2, <ore:ingotNeptunium237Nitride>, fisProd2, null);
//zirc
mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[1][3] * 9, <ore:ingotUranium233ZA>*2, <ore:ingotUranium234>*2, fisProd1, <nuclearcraft:dust:10> * 4, <nuclearcraft:uranium:9>*2, <ore:ingotNeptunium237ZA>, fisProd2, null);
fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create(<ore:dustMolybdenum>, 25);
fisProd2 = mods.nuclearcraft.ChanceItemIngredient.create(<ore:dustCaesium137>, 25);
//reprocessing
//triso
mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[2][0] * 9, <nuclearcraft:uranium:6> * 2, <ore:ingotNeptunium236Carbide>, fisProd1, <ore:dustGraphite>.amount(3), <nuclearcraft:neptunium:6> * 2, <nuclearcraft:uranium:11>*3, fisProd2, <nuclearcraft:alloy:13>);
//oxide
mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[2][1] * 9, <nuclearcraft:uranium:7> * 2, <ore:ingotNeptunium236Oxide>, fisProd1, null, <nuclearcraft:neptunium:7> * 2, <nuclearcraft:uranium:12>*3, fisProd2, null);
//nitride
mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[2][2] * 9, <nuclearcraft:uranium:8> * 2, <ore:ingotNeptunium236Nitride>, fisProd1, null, <nuclearcraft:neptunium:8> * 2, <nuclearcraft:uranium:13>*3, fisProd2, null);
//zirc
mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[2][3] * 9, <nuclearcraft:uranium:9> * 2, <ore:ingotNeptunium236ZA>, fisProd1, <nuclearcraft:dust:10>, <nuclearcraft:neptunium:9> * 2, <nuclearcraft:uranium:14>*3, fisProd2, null);
for i,array in dpaFuels{
for j,item in array{
mods.nuclearcraft.Radiation.setRadiationLevel(item, ddecayRad[i+3]);
realOreDictList[i+3].add(dpaFuels2[i][j]);
}
}
/* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Isotope Stuff -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
val qIsoNames= [[<contenttweaker:thorium229>,<contenttweaker:thorium229carbide>,<contenttweaker:thorium229oxide>,<contenttweaker:thorium229nitride>,<contenttweaker:thorium229zirconium>],[<contenttweaker:mendelevium58>,<contenttweaker:mendelevium58carbide>,<contenttweaker:mendelevium58oxide>,<contenttweaker:mendelevium58nitride>,<contenttweaker:mendelevium58zirconium>],[<contenttweaker:flerovium98>,<contenttweaker:flerovium98carbide>,<contenttweaker:flerovium98oxide>,<contenttweaker:flerovium98nitride>,<contenttweaker:flerovium98zirconium>],[<contenttweaker:darmstadtium294>,<contenttweaker:darmstadtium294carbide>,<contenttweaker:darmstadtium294oxide>,<contenttweaker:darmstadtium294nitride>,<contenttweaker:darmstadtium294zirconium>]] as IIngredient[][];
val qIsoNames2= [[<contenttweaker:thorium229>,<contenttweaker:thorium229carbide>,<contenttweaker:thorium229oxide>,<contenttweaker:thorium229nitride>,<contenttweaker:thorium229zirconium>],[<contenttweaker:mendelevium58>,<contenttweaker:mendelevium58carbide>,<contenttweaker:mendelevium58oxide>,<contenttweaker:mendelevium58nitride>,<contenttweaker:mendelevium58zirconium>],[<contenttweaker:flerovium98>,<contenttweaker:flerovium98carbide>,<contenttweaker:flerovium98oxide>,<contenttweaker:flerovium98nitride>,<contenttweaker:flerovium98zirconium>],[<contenttweaker:darmstadtium294>,<contenttweaker:darmstadtium294carbide>,<contenttweaker:darmstadtium294oxide>,<contenttweaker:darmstadtium294nitride>,<contenttweaker:darmstadtium294zirconium>]] as IItemStack[][];
val qisoN2 = [<contenttweaker:thorium229>,<contenttweaker:mendelevium58>,<contenttweaker:flerovium98>,<contenttweaker:darmstadtium294>] as IItemStack[];
val qdecays = [<contenttweaker:einsteinium54>,<contenttweaker:einsteinium54carbide>,<contenttweaker:einsteinium54oxide>,<contenttweaker:einsteinium54nitride>,<contenttweaker:einsteinium54zirconium>] as IIngredient[];
decayRad = [1.26E-04,7.09,1.0e-6,1.0e-9] as double[];
oreDictList = ["ingotThorium229All","ingotMendelevium258All","ingotFlerovium298All","ingotDarmstadtium294All"] as string[];
for entry in oreDictList {
oreDict.entry;
}
realOreDictList = [<ore:ingotThorium229All>,<ore:ingotMendelevium258All>,<ore:ingotFlerovium298All>,<ore:ingotDarmstadtium294All>] as IOreDictEntry[];
for i,array in qIsoNames{
// adding carbides
mods.nuclearcraft.AlloyFurnace.addRecipe(array[0], graphite, array[1]);
// adding oxides
mods.nuclearcraft.Infuser.addRecipe(array[0], <fluid:oxygen>*1000, array[2]);
// adding nitrides
mods.nuclearcraft.Infuser.addRecipe(array[0], <fluid:nitrogen>*1000, array[3]);
// adding zirconium alloys
mods.nuclearcraft.AlloyFurnace.addRecipe(array[0], zirconium, array[4]);
// recipes for normal
furnace.addRecipe(qisoN2[i], array[3]);
furnace.addRecipe(qisoN2[i], array[2]);
mods.nuclearcraft.Separator.addRecipe(array[1], array[0], <nuclearcraft:dust:8>);
mods.nuclearcraft.Separator.addRecipe(array[4], array[0], <nuclearcraft:dust:10>);
//adding decays
for j,item in array{
mods.nuclearcraft.Radiation.setRadiationLevel(item, decayRad[i]);
realOreDictList[i].add(qIsoNames2[i][j]);
if (i==1){
mods.nuclearcraft.DecayHastener.addRecipe(item, qdecays[j],1.0,1.0,decayRad[i]);
}
}
}
var uran = <ore:ingotUranium235>;
mods.nuclearcraft.DecayHastener.removeRecipeWithInput(uran);
uran = <ore:ingotUranium235>|<ore:ingotUranium235Oxide>|<ore:ingotUranium235Nitride>;
mods.nuclearcraft.DecayHastener.addRecipe(uran, <ore:dustProtactinium231>,1.0,1.0,1.42e-9);
// Stuff for Actinium-227 & Thorium-229
oreDict.dustActinium227;
<ore:dustActinium227>.add(<contenttweaker:actinium>);
mods.nuclearcraft.FissionIrradiator.addRecipe(<ore:dustRadium>, <contenttweaker:actinium>, 1563000, 0.0, 0.0, 0.0);
mods.nuclearcraft.DecayHastener.addRecipe(<contenttweaker:actinium>, <ore:dustLead>,1.0,1.0,4.59E-02);
mods.nuclearcraft.Radiation.setRadiationLevel(<contenttweaker:actinium>, 4.59E-02);
oreDict.ingotThorium229Pure;
<ore:ingotThorium229Pure>.add(<contenttweaker:purethorium229>);
mods.nuclearcraft.Manufactory.addRecipe(<ore:ingotThorium229All>, <ore:ingotThorium229Pure>);
mods.nuclearcraft.Radiation.setRadiationLevel(<contenttweaker:purethorium229>, 1.26E-04);
mods.nuclearcraft.FissionIrradiator.addRecipe(<contenttweaker:actinium>, <contenttweaker:purethorium229>, 201000, 0.0, 0.0, 0.0);
mods.nuclearcraft.DecayHastener.addRecipe(<contenttweaker:purethorium229>|<contenttweaker:thorium229>|<contenttweaker:thorium229oxide>|<contenttweaker:thorium229nitride>, <ore:dustBismuth>,1.0,1.0,decayRad[0]);
//enhancements
mods.nuclearcraft.AlloyFurnace.addRecipe(<contenttweaker:purethorium229>*64, <contenttweaker:californium54>, <contenttweaker:thorium229>*64);
mods.nuclearcraft.AlloyFurnace.addRecipe(<contenttweaker:purethorium229>*8, <ore:ingotCalifornium252>, <contenttweaker:thorium229>*8);
// U-234 melting time
mods.nuclearcraft.Melter.addRecipe(<ore:ingotUranium234>, <fluid:uranium_234>*144);
mods.nuclearcraft.IngotFormer.addRecipe(<fluid:uranium_234>*144, <ore:ingotUranium234>);
//Special Thorium Pellet Stuff
if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") {
//<ore:ingotThorium229Pure>.add(<contenttweaker:th_pellet_slow>);
//<ore:ingotThorium229Pure>.add(<contenttweaker:th_pellet_fast>);
//recipes.addShaped(<contenttweaker:th_pellet_slow>*3,[[<ore:ingotThorium229Pure>],[<ore:ingotThorium229Pure>],[<ore:ingotThorium229Pure>]]);
//recipes.addShaped(<contenttweaker:th_pellet_fast>*3,[[<ore:ingotThorium229Pure>,<ore:ingotThorium229Pure>,<ore:ingotThorium229Pure>]]);
mods.nuclearcraft.FissionIrradiator.addRecipe(<ore:ingotThorium229Pure>, <ore:dustProtactinium231>, 1185000, 7.5, 0.0, 3.30E-04);
//mods.nuclearcraft.FissionIrradiator.addRecipe(<contenttweaker:th_pellet_slow>, <ore:dustProtactinium231>, 1185000, 7.5, 0.0, 3.30E-04);
//mods.nuclearcraft.FissionIrradiator.addRecipe(<contenttweaker:th_pellet_fast>, <ore:dustThorium>, 1198000, 0.1, 0.0, 3.30E-04);
}else{
//mods.jei.JEI.hide(<contenttweaker:th_pellet_slow>);
//mods.jei.JEI.hide(<contenttweaker:th_pellet_fast>);
}
/* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Improved RTGs -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */
val radioIso = [<ore:ingotCobalt60>,<contenttweaker:actinium>] as IIngredient[];
val decayIso = [<ore:dustNickel>,<ore:dustLead>] as IIngredient[];
val red = <ore:dustRedstone>;
val sige = <contenttweaker:si_ge>;
var input = [<contenttweaker:rtg_co>,<contenttweaker:rtg_ac>] as IIngredient[];
var output = [<contenttweaker:rtg_co_done>,<contenttweaker:rtg_ac_done>] as IIngredient[];
//mean lifetime, power, radiation
var rtgstats = [[126600.0,36.0,1.90E-01],[522000.0,1370.0,4.59E-02]] as double[][];
// MRR Compat
if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") {
rtgstats = [[126600.0,36.0,3.50E-01],[522000.0,1370.0,5.90E-02]] as double[][];
}
for i,item in input{
mods.nuclearcraft.Assembler.addRecipe(radioIso[i].amount(9), <nuclearcraft:rad_shielding:2>*4, red*2, sige*2, item);
mods.nuclearcraft.DecayGenerator.addRecipe(item, output[i], rtgstats[i][0], rtgstats[i][1], rtgstats[i][2]);
mods.nuclearcraft.FuelReprocessor.addRecipe(output[i], decayIso[i].amount(9), <nuclearcraft:rad_shielding:2>*4, null, null, red*2, sige*2, null, null);
mods.nuclearcraft.Radiation.setRadiationLevel(item, rtgstats[i][2]);
}
/* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Clock Fun -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */
val nClock = <minecraft:clock>.withTag({display: {Name: "Nuclear Clock", Lore: ["Somehow hundreds of times even more accurate than an atomic clock!"]}});
recipes.addShaped(nClock,[[null, <ore:ingotGold>, null],[<ore:ingotGold>, <contenttweaker:purethorium229>, <ore:ingotGold>],[null,<ore:ingotGold>,null]]);