/* Copyright Bob Bartsch, 2021 This code is governed by the Creative Commons Attribution–NonCommercial 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.) */ // imports 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.FissionIrradiator; */ import mods.nuclearcraft.PebbleFission; import mods.nuclearcraft.SolidFission; import mods.nuclearcraft.RockCrusher; import mods.nuclearcraft.Melter; import mods.nuclearcraft.IngotFormer; import mods.nuclearcraft.ChemicalReactor; import mods.nuclearcraft.SaltMixer; import mods.nuclearcraft.Electrolyzer; import mods.nuclearcraft.Centrifuge; import mods.nuclearcraft.SaltFission; // 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; // isotopes recipes val IsoNames= [[,,,,],[,,,,],[,,,,],[,,,,],[,,,,]] as IIngredient[][]; val IsoNames2= [[,,,,],[,,,,],[,,,,],[,,,,],[,,,,]] as IItemStack[][]; var fluidNames= [,,,,] as ILiquidStack[]; //val radName= [,,,,] as IOreDictEntry[]; val isoN2 = [,,,,] as IItemStack[]; val decays = [[,,,,],[,,,,],[,,,,], [,,,,],[,,,,]] as IIngredient[][]; var decayRad = [20.5, 6.04, 1.32, 9.18, 3.63] as double[]; //cf-250 skipped over due to balancing concerns //oreDic var oreDictList = ["dustGermanium","ingotCalifornium253All","ingotCalifornium254All","ingotEinsteinium254All","ingotEinsteinium255All","ingotFermium257All"] as string[]; for entry in oreDictList { oreDict.entry; } .add(); var realOreDictList = [,,,,] as IOreDictEntry[]; val graphite = |; val zirconium = |; for i,array in IsoNames{ // adding carbides mods.nuclearcraft.AlloyFurnace.addRecipe(array[0], graphite, array[1]); // adding oxides mods.nuclearcraft.Infuser.addRecipe(array[0], *1000, array[2]); // adding nitrides mods.nuclearcraft.Infuser.addRecipe(array[0], *1000, array[3]); // adding zirconium alloys mods.nuclearcraft.AlloyFurnace.addRecipe(array[0], zirconium, array[4]); // recipes for normal furnace.addRecipe(isoN2[i], array[3]); furnace.addRecipe(isoN2[i], array[2]); mods.nuclearcraft.Separator.addRecipe(array[1], array[0], ); mods.nuclearcraft.Separator.addRecipe(array[4], array[0], ); //adding decays for j,item in array{ mods.nuclearcraft.Radiation.setRadiationLevel(item, decayRad[i]); realOreDictList[i].add(IsoNames2[i][j]); if (i!=1 | (j!=1 & j!=4)){ mods.nuclearcraft.DecayHastener.addRecipe(item, decays[i][j],1.0,1.0,decayRad[i]); } } // melting time mods.nuclearcraft.Melter.addRecipe(array[0], fluidNames[i]*144); mods.nuclearcraft.IngotFormer.addRecipe(fluidNames[i]*144, array[0]); } //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, *500, array[1]*72, null); mods.nuclearcraft.Electrolyzer.addRecipe(array[1]*72, array[0]*72, *500, null, null); mods.nuclearcraft.SaltMixer.addRecipe(array[1]*72, *72, array[2]*72); mods.nuclearcraft.Centrifuge.addRecipe(array[2]*72, array[1]*72, *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, *72, null, null, null, null); mods.nuclearcraft.Electrolyzer.addRecipe(array[4]*72, array[5]*72, *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); } // fuels recipes /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- LE Fuels -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ var fis = [[,,,,],[,,,,]] as IIngredient[][]; var fer = [[,,,,],[,,,,]] as IIngredient[][]; var FuelNames = [["californium_fuel","californium_fuel_carbide","californium_fuel_oxide","californium_fuel_nitride","californium_fuel_zirconium"],["einsteinium_fuel","einsteinium_fuel_carbide","einsteinium_fuel_oxide","einsteinium_fuel_nitride","einsteinium_fuel_zirconium"]] as string[][]; var allFuels = [[,,,,],[,,,,]] as IItemStack[][]; var fuelN2 = [,] as IItemStack[]; decayRad =[2.61,8.3,1.92,7.09,6.56] as double[]; var decayFactor =[0.10,0.105] as double[]; var fluidFuelNames= [[,,,,,],[,,,,,]] as ILiquidStack[][]; var fluidProd= [[*32,*32,*32,*32,,],[*16,*48,*48,*16,,]] as ILiquidStack[][]; var fluidComp= [[*128,*16],[*128,*16]] as IIngredient[][]; // time, heat, criticality var fuelStats = [[[lifetimeMultiplier*450,1280,25],[lifetimeMultiplier*288,2000,17],[lifetimeMultiplier*324,1778,18]],[[lifetimeMultiplier*550,1048,31],[lifetimeMultiplier*352,1638,21],[lifetimeMultiplier*396,1456,23]]] as int[][][]; var fuelCrits = [[20],[25]] as int[][]; var trisoFuels = [,] as IItemStack[]; var dFuels = [[,,,],[,,,]] as IIngredient[][]; var dFuels2 = [[,,,],[,,,]] as IItemStack[][]; // time, heat, criticality var trisoStats = [[lifetimeMultiplier*360,1600,17],[lifetimeMultiplier*440,1310,21]] as int[][]; // efficiency, radiation var trisoStatsAlt = [[1.9,8.01E-02],[2.0,2.34E-01]] as double[][]; var moltenTimes = [3.125,3.819444444] as double[]; // MRR Compat if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") { trisoStatsAlt = [[1.9,4.22E-02],[2.0,7.18E-02]] as double[][]; } var fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create(, 30); var fisProd2 = mods.nuclearcraft.ChanceItemIngredient.create(, 20); oreDictList = ["ingotLECf253All","ingotLEE254All","ingotDepletedLECf253All","ingotDepletedLEE254All"] as string[]; for entry in oreDictList { oreDict.entry; } realOreDictList = [,,,] 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], *1000, array[2]); mods.nuclearcraft.Infuser.addRecipe(array[0], *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], ); mods.nuclearcraft.Separator.addRecipe(array[4], array[0], ); mods.nuclearcraft.Separator.addRecipe(array[0]*9, fis[i][0], fer[i][0]*8); //pebbles mods.nuclearcraft.Assembler.addRecipe(array[1]*9, , , , 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], true, 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], true, 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], true, 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], true, 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], true, trisoStatsAlt[i][1]); //melting time mods.nuclearcraft.SaltMixer.addRecipe(fluidComp[i][0], fluidComp[i][1], fluidFuelNames[i][0]*144); mods.nuclearcraft.Centrifuge.addRecipe(fluidFuelNames[i][0]*144, fluidComp[i][0], fluidComp[i][1], null, null, null, null); 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],30,20] as int[], true); } // reprocessing the depleted fuels var dIso = [[[fer[0][1].amount(2),fer[0][1].amount(2),fer[1][1].amount(2),fis[1][1]], [fer[0][2].amount(2),fer[0][2].amount(2),fer[1][2].amount(2),fis[1][2]], [fer[0][3].amount(2),fer[0][3].amount(2),fer[1][3].amount(2),fis[1][3]], [fer[0][4].amount(2),fer[0][4].amount(2),fer[1][4].amount(2),fis[1][4]]], [[fis[1][1],fer[1][1].amount(3),fer[1][1].amount(3),],[fis[1][2],fer[1][2].amount(3),fer[1][2].amount(3),],[fis[1][3],fer[1][3].amount(3),fer[1][3].amount(3),],[fis[1][4],fer[1][4].amount(3),fer[1][4].amount(3),]] ] as IIngredient[][][]; var ddecayRad = [2.51,6.68,1.14,3.99,5.32] as double[]; for i,array in dFuels{ //triso mods.nuclearcraft.FuelReprocessor.addRecipe(array[0].amount(9), dIso[i][0][0], dIso[i][0][1], fisProd1, .amount(3), dIso[i][0][2], dIso[i][0][3], fisProd2, ); //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, , dIso[i][3][2], dIso[i][3][3], fisProd2, null); for j,item in array{ mods.nuclearcraft.Radiation.setRadiationLevel(item, ddecayRad[i]); realOreDictList[i+2].add(dFuels2[i][j]); } } /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- MX Fuels -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ val mxFuelNames = ["fermium_fuel","fermium_fuel_carbide","fermium_fuel_oxide","fermium_fuel_nitride","fermium_fuel_zirconium"] as string[]; val mxFuels = [,,,,] as IItemStack[]; fluidNames= [] as ILiquidStack[]; val fm257 = [,,,,] as IItemStack[]; val am243 = [,,,,] as IIngredient[]; val bk247 = [,,,,] as IIngredient[]; val cf254 = [,,,,] as IItemStack[]; oreDict.ingotMIX257All; oreDict.ingotDepletedMIX257All; for j,item in mxFuels{ //crafting recipes.addShapeless(mxFuelNames[j],item * 9,[fm257[j], fm257[j], fm257[j], am243[j], am243[j], bk247[j], bk247[j], fer[0][j], cf254[j]]); mods.nuclearcraft.Radiation.setRadiationLevel(item, decayRad[2]); .add(item); } //non-crafting recipes mods.nuclearcraft.AlloyFurnace.addRecipe(mxFuels[0], graphite, mxFuels[1]); mods.nuclearcraft.Infuser.addRecipe(mxFuels[0], *1000, mxFuels[2]); mods.nuclearcraft.Infuser.addRecipe(mxFuels[0], *1000, mxFuels[3]); mods.nuclearcraft.AlloyFurnace.addRecipe(mxFuels[0], zirconium, mxFuels[4]); furnace.addRecipe(, mxFuels[3]); furnace.addRecipe(, mxFuels[2]); mods.nuclearcraft.Separator.addRecipe(mxFuels[1], mxFuels[0], ); mods.nuclearcraft.Separator.addRecipe(mxFuels[4], mxFuels[0], ); val dmxFuels = [,,,] as IItemStack[]; val mxeff = 2.1; var mxrad = 4.79E-02; // MRR Compat if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") { mxrad = 3.38E-02; } //pebbles mods.nuclearcraft.Assembler.addRecipe(mxFuels[1]*9, , , , *9); if (oreDict has "QuantumTraverseWhyCanISteamMyCrabs") { mods.nuclearcraft.SolidFission.addRecipe(, dmxFuels[0], (lifetimeMultiplier*684), 2700, mxeff, 40, 0.11, true, mxrad); }else{ mods.nuclearcraft.PebbleFission.addRecipe(, dmxFuels[0], (lifetimeMultiplier*760), 2430, mxeff, 37, 0.11, true, mxrad); } mods.nuclearcraft.Radiation.setRadiationLevel(, decayRad[2]); .add(); //oxide mods.nuclearcraft.SolidFission.addRecipe(mxFuels[2], dmxFuels[1], (lifetimeMultiplier*760), 2430, mxeff, 44, 0.11, true, mxrad); //nitride mods.nuclearcraft.SolidFission.addRecipe(mxFuels[3], dmxFuels[2], (lifetimeMultiplier*950), 1944, mxeff, 55, 0.11, true, mxrad); //zirconium mods.nuclearcraft.SolidFission.addRecipe(mxFuels[4], dmxFuels[3], (lifetimeMultiplier*608), 3088, mxeff, 37, 0.11, true, mxrad); fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create(, 75); fisProd2 = mods.nuclearcraft.ChanceItemIngredient.create(, 75); //reprocessing //triso mods.nuclearcraft.FuelReprocessor.addRecipe(dmxFuels[0] * 9, * 2, * 2, fisProd1, .amount(4), fer[0][1] * 2, fis[1][1], fisProd2, ); //oxide mods.nuclearcraft.FuelReprocessor.addRecipe(dmxFuels[1] * 9, * 2, * 2, fisProd1, null, fer[0][2] * 2, fis[1][2], fisProd2, null); //nitride mods.nuclearcraft.FuelReprocessor.addRecipe(dmxFuels[2] * 9, * 2, * 2, fisProd1, null, fer[0][3] * 2, fis[1][3], fisProd2, null); //zirc mods.nuclearcraft.FuelReprocessor.addRecipe(dmxFuels[3] * 9, * 2, * 2, fisProd1, * 2, fer[0][4] * 2, fis[1][4], fisProd2, null); for item in dmxFuels{ mods.nuclearcraft.Radiation.setRadiationLevel(item, ddecayRad[2]); .add(item); } //MSR Stuff fluidFuelNames= [[,,,,,]] as ILiquidStack[][]; fluidProd= [[*32,*16,*16,*48,,]] as ILiquidStack[][]; superMelt(mxFuels[0], fluidFuelNames[0], fluidProd[0], [6.597222222, mxeff, mxrad, 0.11] as double[], [1944, 44, 75, 75] as int[], true); /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- HE Fuels -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ FuelNames = [["hcalifornium_fuel","hcalifornium_fuel_carbide","hcalifornium_fuel_oxide","hcalifornium_fuel_nitride","hcalifornium_fuel_zirconium"],["heinsteinium_fuel","heinsteinium_fuel_carbide","heinsteinium_fuel_oxide","heinsteinium_fuel_nitride","heinsteinium_fuel_zirconium"]]; allFuels = [[,,,,],[,,,,]]; fuelN2 = [,]; fluidFuelNames= [[,,,,,],[,,,,,]] as ILiquidStack[][]; fluidProd= [[*32,*16,*16,*48,,],[*16,*16,*32,*48,,]] as ILiquidStack[][]; fluidComp= [[,,],[,,]] as IIngredient[][]; moltenTimes = [3.125,3.819444444] as double[]; fuelCrits = [[9,10,13,9],[11,13,16,12]]; trisoFuels = [,]; dFuels = [[,,,],[,,,]]; dFuels2 = [[,,,],[,,,]]; trisoStatsAlt = [[1.95,1.73E-01],[2.05,1.86E-01]] as double[][]; // MRR Compat if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") { trisoStatsAlt = [[1.9,6.50E-02],[2.0,6.15E-02]] as double[][]; } fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create(, 90); fisProd2 = mods.nuclearcraft.ChanceItemIngredient.create(, 60); oreDictList = ["ingotHECf253All","ingotHEE254All","ingotDepletedHECf253All","ingotDepletedHEE254All"] as string[]; for entry in oreDictList { oreDict.entry; } realOreDictList = [,,,] as IOreDictEntry[]; for i,array in allFuels{ for j,item in array{ //crafting recipes.addShapeless(FuelNames[i][j],item * 9,[fis[i][j], fis[i][j], fis[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[3+i]); realOreDictList[i].add(item); } //non-crafting recipes mods.nuclearcraft.AlloyFurnace.addRecipe(array[0], graphite, array[1]); mods.nuclearcraft.Infuser.addRecipe(array[0], *1000, array[2]); mods.nuclearcraft.Infuser.addRecipe(array[0], *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], ); mods.nuclearcraft.Separator.addRecipe(array[4], array[0], ); mods.nuclearcraft.Separator.addRecipe(array[0]*9, fis[i][0]*3, fer[i][0]*6); //pebbles mods.nuclearcraft.Assembler.addRecipe(array[1]*9, , , , trisoFuels[i]*9); if (oreDict has "QuantumTraverseWhyCanISteamMyCrabs") { mods.nuclearcraft.SolidFission.addRecipe(trisoFuels[i], dFuels[i][0], fuelStats[i][2][0], (3 * fuelStats[i][2][1]), fuelCrits[i][3], fuelStats[i][2][2], decayFactor[i], true, trisoStatsAlt[i][1]); }else{ mods.nuclearcraft.PebbleFission.addRecipe(trisoFuels[i], dFuels[i][0], trisoStats[i][0], (3 * trisoStats[i][1]), trisoStatsAlt[i][0], fuelCrits[i][0], decayFactor[i], true, trisoStatsAlt[i][1]); } mods.nuclearcraft.Radiation.setRadiationLevel(trisoFuels[i], decayRad[3+i]); realOreDictList[i].add(trisoFuels[i]); //oxide mods.nuclearcraft.SolidFission.addRecipe(array[2], dFuels[i][1], trisoStats[i][0], (3 * trisoStats[i][1]), trisoStatsAlt[i][0], fuelCrits[i][1], decayFactor[i], true, trisoStatsAlt[i][1]); //nitride mods.nuclearcraft.SolidFission.addRecipe(array[3], dFuels[i][2], fuelStats[i][0][0], (3 * fuelStats[i][0][1]), trisoStatsAlt[i][0], fuelCrits[i][2], decayFactor[i], true, trisoStatsAlt[i][1]); //zirconium mods.nuclearcraft.SolidFission.addRecipe(array[4], dFuels[i][3], fuelStats[i][1][0], (3 * fuelStats[i][1][1]), trisoStatsAlt[i][0], fuelCrits[i][0], decayFactor[i], true, trisoStatsAlt[i][1]); //melting time mods.nuclearcraft.SaltMixer.addRecipe(fluidComp[i][2]*48, fluidComp[i][1]*16, fluidFuelNames[i][0]*64); mods.nuclearcraft.Centrifuge.addRecipe(fluidFuelNames[i][0]*144, fluidComp[i][0]*96, fluidComp[i][1]*48, null, null, null, null); superMelt(array[0], fluidFuelNames[i], fluidProd[i], [moltenTimes[i], trisoStatsAlt[i][0], trisoStatsAlt[i][1], decayFactor[i]] as double[], [(3*fuelStats[i][0][1]), fuelCrits[i][0], 90, 60] as int[], true); } // reprocessing the depleted fuels dIso = [[[fer[0][1].amount(2),,fer[1][1],fis[1][1].amount(3)], [fer[0][2].amount(2),,fer[1][2],fis[1][2].amount(3)], [fer[0][3].amount(2),,fer[1][3],fis[1][3].amount(3)], [fer[0][4].amount(2),,fer[1][4],fis[1][4].amount(3)]], [[fer[1][1],fer[1][1],fer[1][1].amount(2), * 3],[fer[1][2],fer[1][2],fer[1][2].amount(2), * 3],[fer[1][3],fer[1][3],fer[1][3].amount(2), * 3],[fer[1][4],fer[1][4],fer[1][4].amount(2), *3 ]]] as IIngredient[][][]; for i,array in dFuels{ //triso mods.nuclearcraft.FuelReprocessor.addRecipe(array[0].amount(9), dIso[i][0][0], dIso[i][0][1], fisProd1, .amount(4), dIso[i][0][2], dIso[i][0][3], fisProd2, ); //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, * 2, dIso[i][3][2], dIso[i][3][3], fisProd2, null); for j,item in array{ mods.nuclearcraft.Radiation.setRadiationLevel(item, ddecayRad[3+i]); realOreDictList[i+2].add(dFuels2[i][j]); } } /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- CBCm Time -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ oreDict.ingotCurium244; .add(); oreDict.ingotCBCm; .add(); oreDict.ingotCBCmAll; // MRR Compat if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") { mods.nuclearcraft.Radiation.setRadiationLevel(, 1.94E-05); mods.nuclearcraft.DecayHastener.addRecipe(, , 1.0, 1.0, 1.94E-05); mods.nuclearcraft.FissionIrradiator.addRecipe(, , 78388, 0.0, 0.0, 1.94E-05); mods.nuclearcraft.FissionIrradiator.addRecipe(, , 1332612, 0.0, 0.0, 2.81E-05); }else{ mods.nuclearcraft.Radiation.setRadiationLevel(, 5.52E-02); mods.nuclearcraft.DecayHastener.addRecipe(, , 1.0, 1.0, 5.52E-02); mods.nuclearcraft.FissionIrradiator.addRecipe(, , 78388, 0.0, 0.0, 5.52E-02); mods.nuclearcraft.FissionIrradiator.addRecipe(, , 1332612, 0.0, 0.0, 5.22E-02); } // does all the needed things function theMediumCheese(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[]){ //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 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], |, pellet[1]); mods.nuclearcraft.Infuser.addRecipe(pellet[0], *1000, pellet[2]); mods.nuclearcraft.Infuser.addRecipe(pellet[0], *1000, pellet[3]); mods.nuclearcraft.AlloyFurnace.addRecipe(pellet[0], |, pellet[4]); furnace.addRecipe(pellet[0], pellet[3]); furnace.addRecipe(pellet[0], pellet[2]); mods.nuclearcraft.Separator.addRecipe(pellet[1], pellet[0], ); mods.nuclearcraft.Separator.addRecipe(pellet[4], pellet[0], ); //pebbles mods.nuclearcraft.Assembler.addRecipe(pellet[1]*9, , , , 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]); } 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( * num2, 50); var zirconium = mods.nuclearcraft.ChanceItemIngredient.create( * num, 50); if(integs[0]==1){ graphite = * (num2/2); zirconium = * (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, ); //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 cbc_rads = [5.22E-02,4.96E-03,2.65E-01] as double[]; //base, burn, depleted if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") { cbc_rads = [2.81E-05,3.68E-03,2.35E-01]; } theMediumCheese([,,,,], , [,,,], [,,,], [[2560,225,77],[3200,180,96],[2050,281,65],[2304,250,69]], [1, 30, 20, 4], [1.50, cbc_rads[0], cbc_rads[1], cbc_rads[2], 22.22222222, 0.085], [,,,,,], [*32,*48,*16,*32,,], [[*2,*3,,*2,,],[*2,*3,,*2,,],[*2,*3,,*2,,],[*2,*3,,*2,,]], false, [,]); //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 /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- REF Fuels -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ fis = [[,,,,],[,,,,],[,,,,]] as IIngredient[][]; fer = [[,,,,],[,,,,],[,,,,]] as IIngredient[][]; var rad = [[,,,,],[,,,,],[,,,,]] as IIngredient[][]; fluidFuelNames= [[,,,,,],[,,,,,],[,,,,,]] as ILiquidStack[][]; fluidProd= [[*16,*48,*32,*32,,],[*16,*48,*16,*32,,],[*16,*32,*48,*16,,]] as ILiquidStack[][]; moltenTimes = [34.72222222,13.88888889,19.47916667] as double[]; val fissionProdChance = [[75,75],[75,75],[90,60]] as int[][]; allFuels = [[,,,,],[,,,,],[,,,,]]; fuelN2 = [,,]; trisoFuels = [,,]; dFuels = [[,,,],[,,,],[,,,]]; dFuels2 = [[,,,],[,,,],[,,,]]; // time, heat, criticality fuelStats = [[[lifetimeMultiplier*250*20,346,53],[lifetimeMultiplier*160*20,540,42],[lifetimeMultiplier*180,480,38]],[[lifetimeMultiplier*100*20,864,43],[lifetimeMultiplier*64*20,1350,34],[lifetimeMultiplier*72*20,1200,31]],[[lifetimeMultiplier*2805,616,63],[lifetimeMultiplier*1795,963,50],[lifetimeMultiplier*40371,856,45]]] as int[][][]; val primer=[false,false,true] as bool[]; // time, heat, criticality trisoStats = [[lifetimeMultiplier*200*20,432,36],[lifetimeMultiplier*80*20,1080,29],[lifetimeMultiplier*2244,770,43]] as int[][]; // efficiency, radiation trisoStatsAlt = [[1.35,5.87E-04],[1.45,5.43E-04],[1.90,4.47E-02]] as double[][]; decayFactor=[0.075,0.080,0.10]; // MRR Compat if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") { trisoStatsAlt = [[1.35,3.02E-04],[1.45,2.98E-04],[1.90,2.70E-02]] as double[][]; } decayRad =[1.28e-3,1.92e-3,0.261] as double[]; ddecayRad =[3.63E-02,3.28E-02,2.60] as double[]; oreDictList = ["ingotREP238All","ingotREA241All","ingotRECf250All","ingotDepletedREP238All","ingotDepletedREA241All","ingotDepletedRECf250All"] as string[]; for entry in oreDictList { oreDict.entry; } realOreDictList = [,,,,,] as IOreDictEntry[]; for i,array in allFuels{ for j,item in array{ //crafting recipes.addShapeless(item * 9,[rad[i][j], fis[i][j], fis[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], *1000, array[2]); mods.nuclearcraft.Infuser.addRecipe(array[0], *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], ); mods.nuclearcraft.Separator.addRecipe(array[4], array[0], ); mods.nuclearcraft.Separator.addRecipe(array[0]*9, fis[i][0]*3, fer[i][0]*6); //pebbles mods.nuclearcraft.Assembler.addRecipe(array[1]*9, , , , 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], primer[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], primer[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], fuelStats[i][1][2], decayFactor[i], primer[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], primer[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], trisoStats[i][2], decayFactor[i], primer[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], fuelStats[i][1][2], fissionProdChance[i][0], fissionProdChance[i][1]] as int[], true); } // reprocessing the depleted fuels dIso = [[[fis[0][1],fer[0][1].amount(2),fis[1][1].amount(2),fer[1][1].amount(2)],[fis[0][2],*2,fis[1][2].amount(2),fer[1][2].amount(2)],[fis[0][3],fer[0][3].amount(2),fis[1][3].amount(2),*2],[fis[0][4],fer[0][4].amount(2),fis[1][4].amount(2),fer[1][4].amount(2)]],[[fis[1][1],fer[1][1].amount(3),,*2],[fis[1][2],fer[1][2].amount(3),,*2],[fis[1][3],*3,,*2],[fis[1][4],*3,,*2]],[[fis[2][1],fer[2][1].amount(2),fer[2][1].amount(3),],[fis[2][2],fer[2][2].amount(2),fer[2][2].amount(3),],[fis[2][3],fer[2][3].amount(2),fer[2][3].amount(3),],[fis[2][4],fer[2][4].amount(2),fer[2][4].amount(3),]]] as IIngredient[][][]; for i,array in dFuels{ if(i==0){ fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create(, 75); fisProd2 = mods.nuclearcraft.ChanceItemIngredient.create(, 75); } if(i==1){ fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create(, 75); fisProd2 = mods.nuclearcraft.ChanceItemIngredient.create(, 75); } if(i==2){ fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create(, 75); fisProd2 = mods.nuclearcraft.ChanceItemIngredient.create(, 75); } if(i==1){ //triso mods.nuclearcraft.FuelReprocessor.addRecipe(array[0].amount(9), dIso[i][0][0], dIso[i][0][1], fisProd1, .amount(5), dIso[i][0][2], dIso[i][0][3], fisProd2, ); //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, * 3, dIso[i][3][2], dIso[i][3][3], fisProd2, null); }else{ //triso mods.nuclearcraft.FuelReprocessor.addRecipe(array[0].amount(9), dIso[i][0][0], dIso[i][0][1], fisProd1, .amount(4), dIso[i][0][2], dIso[i][0][3], fisProd2, ); //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, * 2, 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]); } } /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Improved RTGs -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ val radioIso = [,,,,,,,,,] as IIngredient[]; val decayIso = [,,,,,,,,,] as IIngredient[]; if (oreDict has "dustPalladium") { decayIso[1] = ; } if (oreDict has "dustBarium") { decayIso[2] = ; } if (oreDict has "ingotNeodymium") { decayIso[3] = ; }else{ if(oreDict has "dustBarium"){ decayIso[3] = ; }else{ decayIso[3] = ; } } if (oreDict has "dustGadolinium") { decayIso[4] = ; } if(loadedMods has "qmd"){ decayIso[7] = ; } val shielding = [,,,,,,,,,] as IIngredient[]; val red = ; val sige = ; mods.nuclearcraft.RockCrusher.addRecipe(*5,*10, , null); mods.nuclearcraft.AlloyFurnace.addRecipe(, , sige); val input = [,,,,,,,,,] as IIngredient[]; val output = [,,,,,,,,,] as IIngredient[]; //mean lifetime, power, radiation var rtgstats = [[690000.0,44.0,3.47e-2],[24600.0,1550,9.77e-1],[724000.0,7.0,3.32e-2],[63000.0,26.0,3.81e-1],[114200.0,7.1,2.10e-1],[9100.0,11200.0,3.26e-2],[38400000.0,20.0,6.25e-4],[2104800.0,50.0,1.14e-2],[10380000.0,10.0,2.31e-3],[314000.0,370.0,7.65e-2]] as double[][]; // MRR Compat if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") { rtgstats = [[690000.0,44.0,1.56E-03],[24600.0,1550,4.39E-02],[724000.0,7.0,2.98E-02],[63000.0,26.0,1.72E-02],[114200.0,7.1,1.71E-01],[9100.0,11200.0,8.23E-05],[38400000.0,20.0,3.47E-05],[2104800.0,50.0,9.91E-03],[10380000.0,10.0,3.51E-03],[314000.0,370.0,1.20E-02]] as double[][]; } for i,item in input{ mods.nuclearcraft.Assembler.addRecipe(radioIso[i].amount(9), shielding[i].amount(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), shielding[i].amount(4), null, null, red*2, sige*2, null, null); mods.nuclearcraft.Radiation.setRadiationLevel(item, rtgstats[i][2]); } /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Clock Fun -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ val aClock = .withTag({display: {Name: "Atomic Clock", Lore: ["Trillions of times more accurate than a normal clock!"]}}); recipes.addShaped(aClock,[[null, , null],[, , ],[null,,null]]); /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Cm-250 Stuff -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ oreDict.ingotCurium250; .add(); oreDict.ingotCBCf; .add(); oreDict.ingotCBCfAll; // MRR Compat if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") { mods.nuclearcraft.Radiation.setRadiationLevel(, 6.80E-03); mods.nuclearcraft.DecayHastener.addRecipe(, , 1.0, 1.0, 6.80E-03); mods.nuclearcraft.FissionIrradiator.addRecipe(, , 14556, 0.0, 0.0, 6.80E-03); mods.nuclearcraft.FissionIrradiator.addRecipe(, , 247444, 0.0, 0.0, 6.52E-03); }else{ mods.nuclearcraft.Radiation.setRadiationLevel(, 1.20E-04); mods.nuclearcraft.DecayHastener.addRecipe(, , 1.0, 1.0, 1.20E-04); mods.nuclearcraft.FissionIrradiator.addRecipe(, , 14556, 0.0, 0.0, 1.20E-04); mods.nuclearcraft.FissionIrradiator.addRecipe(, , 247444, 0.0, 0.0, 1.76E-04); } if (oreDict has "blockHighlyRadioactiveEarth") { val gold = mods.nuclearcraft.ChanceItemIngredient.create(, 64); mods.nuclearcraft.FuelReprocessor.addRecipe(*64, *12, *16, gold, *12, *6, *4, *2, ); mods.nuclearcraft.FuelReprocessor.addRecipe(*64, *12, *16, gold, *12, *6, *4, *2, ); }else{ val cure = ; if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") { mods.nuclearcraft.FissionIrradiator.addRecipe(, cure, 6249000, 0.0, 0.75, 1.90E-03); }else{ mods.nuclearcraft.FissionIrradiator.addRecipe(, cure, 6249000, 0.0, 0.75, 0.0003744); } } //CBCf time cbc_rads = [1.76E-04,3.94E-02,2.52E+00] as double[]; //base, burn, depleted if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") { cbc_rads = [6.52E-03,1.55E-02,9.83E-01]; } theMediumCheese([,,,,], , [,,,], [,,,], [[2304,250,75],[2880,200,94],[1840,313,64],[2072,278,68]], [1, 30, 20, 4], [1.75, cbc_rads[0], cbc_rads[1], cbc_rads[2], 20.0, 0.085], [,,,,,], [*32,*32,*48,,,], [[*2,*2,*3,,,],[*2,*2,*3,,,],[*2,*2,*3,,,],[*2,*2,*3,,,]], false, [,]); //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 /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- CANDU+ Stuff -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ oreDict.ingotUraniumOxide; .add(); oreDict.ingotCANDUAll; .add(); .add(); oreDict.ingotDepletedCANDUAll; .add(); oreDict.ingotThoriumOxide; .add(); oreDict.ingotANEELAll; .add(); .add(); oreDict.ingotDepletedANEELAll; .add(); // CANDU recipe time mods.nuclearcraft.Infuser.addRecipe(, *1000, ); furnace.addRecipe(, ); mods.nuclearcraft.Assembler.addRecipe(*9, , null, null, *9); mods.nuclearcraft.Infuser.addRecipe(, *5, ); mods.nuclearcraft.Radiation.setRadiationLevel(, 3.44E-10); mods.nuclearcraft.Radiation.setRadiationLevel(, 1.72E-03); // ANEEL recipe time mods.nuclearcraft.Infuser.addRecipe(, *1000, ); furnace.addRecipe(, ); mods.nuclearcraft.Assembler.addRecipe(*3, *6, , null, *9); mods.nuclearcraft.Infuser.addRecipe(, *5, ); // Fission & Rads if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") { mods.nuclearcraft.SolidFission.addRecipe(, , 7200, 80, 1.25, 345, 0.065, false, 3.30E-05); mods.nuclearcraft.SolidFission.addRecipe(, , 9000, 64, 1.25, 418, 0.045, false, 8.17E-05); mods.nuclearcraft.Radiation.setRadiationLevel(, 1.47E-09); mods.nuclearcraft.Radiation.setRadiationLevel(, 2.70E-10); mods.nuclearcraft.Radiation.setRadiationLevel(, 5.23E-03); }else{ mods.nuclearcraft.SolidFission.addRecipe(, , 7200, 80, 1.25, 345, 0.065, false, 2.68E-05); mods.nuclearcraft.SolidFission.addRecipe(, , 9000, 64, 1.25, 418, 0.045, false, 1.36E-04); mods.nuclearcraft.Radiation.setRadiationLevel(, 2.55E-10); mods.nuclearcraft.Radiation.setRadiationLevel(, 7.12E-11); mods.nuclearcraft.Radiation.setRadiationLevel(, 8.68E-03); } // reprocessing fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create(, 25); fisProd2 = mods.nuclearcraft.ChanceItemIngredient.create(, 25); mods.nuclearcraft.FuelReprocessor.addRecipe(*9, *4, *2, fisProd1, , , , fisProd2, null); mods.nuclearcraft.FuelReprocessor.addRecipe(*9, , , fisProd1, , *4, , fisProd2, );