diff --git a/index.toml b/index.toml index f7af123..edffc16 100644 --- a/index.toml +++ b/index.toml @@ -1370,3 +1370,111 @@ hash = "eee9b234a7a5681740a36962b6c3a6e3e7659b56bbdd2a09beaa89ca8ec49e79" [[files]] file = "resources/nuclearcraft/addons/MoarRealisticRadiation-1.3.6.zip" hash = "fd5dde9613ee1d7f6c65d061c3b6ad91bc3e279135cadcc3f88683d49e95cfc1" + +[[files]] +file = "scripts/Actually_Addons.zs" +hash = "757ecca75f7d879ee89e37188c8de65db7eb3ec215f4293a02850461b240f006" + +[[files]] +file = "scripts/Advanced_Chimneys.zs" +hash = "685693bb776bc68995154c4498fdd250419897b65154b45be125cb25f906fdd2" + +[[files]] +file = "scripts/Advanced_Generators.zs" +hash = "c867e13ed9df375c26a21a4667757f7dfd6533df2a4edeb88d531438ecefba20" + +[[files]] +file = "scripts/ExNihilo&Compressum.zs" +hash = "3c1740c575a6fc042e23a59f171649d99d4b5214e5206cfb200f46469ec06076" + +[[files]] +file = "scripts/GalacticCraft.zs" +hash = "a08cff47f6f957d735126e82bb575ef20fc6bf0ad7fefd6f2f957a8f60dd8f99" + +[[files]] +file = "scripts/Immersive_Engineering.zs" +hash = "e85b723eae92dea704e0cdb54130a344af44d0a24f5eacad4de8725ad7a6a90f" + +[[files]] +file = "scripts/Industrial_Craft_2.zs" +hash = "c5a4e8a5d66e76bbc4c49c7739a92efc0287c044ca761b0a659de1b7b830779c" + +[[files]] +file = "scripts/Mekanism.zs" +hash = "3c8fd01c466cdae40f0bbd4df87f33089598dde62a9fe3c067c13fefd1fd2b23" + +[[files]] +file = "scripts/Misc.zs" +hash = "39bdbb3a5d5b83a8a441e8f307a3fef172cbc544c1b5d4ea5b046a0b95070028" + +[[files]] +file = "scripts/RFTools.zs" +hash = "80ec2105c24b368c502ab917e99f7c57b0166ee544fe9c2c868fc67b7f385557" + +[[files]] +file = "scripts/Thermal_Expansion.zs" +hash = "2e4fb5a9f7aa7c41442b781337747b40463457e5b0e7c5540d9a101a6e85e04f" + +[[files]] +file = "scripts/gear.zs" +hash = "e7f3a5fcaf5a12711f7aedf65191fc9fde14dec782128eecb1832ee28ac03114" + +[[files]] +file = "scripts/nc_script_addons/DONT_PUT_YOUR_SCRIPTS_IN_HERE" +hash = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + +[[files]] +file = "scripts/nc_script_addons/MoarFuels/.DS_Store" +hash = "d65165279105ca6773180500688df4bdc69a2c7b771752f0a46ef120b7fd8ec3" + +[[files]] +file = "scripts/nc_script_addons/MoarFuels/preload_mf.zs" +hash = "b3ee073d0e0e9df9f3f1f8220fde9a916ca0b17ad9ad2219d01c98befc76ce73" + +[[files]] +file = "scripts/nc_script_addons/MoarFuels/super_fuels_cores.zs" +hash = "cb97fef7a47938fe0d89d46e6de64927f83568ee39bc8fcfe0a269ef45265e0b" + +[[files]] +file = "scripts/nc_script_addons/MoarFuels/super_fuels_crazy.zs" +hash = "c63b15d9aa37c1145968bdd356824143fd1a9fa9ae65d09d4eea92f97d91fc17" + +[[files]] +file = "scripts/nc_script_addons/MoarFuels/super_fuels_gen.zs" +hash = "2ed94c034021ba2a55fe2614dfe20e6917c839ffaedd9e26a5dc9e6275808d48" + +[[files]] +file = "scripts/nc_script_addons/MoarFuels/super_fuels_rec.zs" +hash = "5a91804c69059970baf666e41599ab1ff56409a9c54363161a31e78a367bdba4" + +[[files]] +file = "scripts/nc_script_addons/MoarFuels/super_fuels_res.zs" +hash = "dec72113804f07b9c790ba3063b3a6c16020abcdd8cd818fe21a842aa87b944e" + +[[files]] +file = "scripts/nc_script_addons/MoarFuels/superstable_isle_gen.zs" +hash = "062b0ba03d380c0ac6311e9f1079308a484e7d96f7f2c49d189c89f4271a9c6b" + +[[files]] +file = "scripts/nc_script_addons/MoarFuels/superstable_isle_rec.zs" +hash = "a8bb42d5d67b75ba8009c90aec72b0f1500309e9a9ffef6fc330bb871c7135de" + +[[files]] +file = "scripts/nc_script_addons/MoarFuels/wg_cores.zs" +hash = "c2f455cc16ed69ea51444624a0f43e5f874872680dee42abd76e32c3ffeacb15" + +[[files]] +file = "scripts/nc_script_addons/MoarRealisticRadiation/rad_changes.zs" +hash = "99912e5df913a4d472b2b930a55bb07b3de9d3466ac113a9cf6cfab8ee7c1046" + +[[files]] +file = "scripts/nc_script_addons/MoarRealisticRadiation/rad_nco.zs" +hash = "ee23d236da3b8ea5864f56036c701d89b9e26bab292dac72406f9a72fa7b7d73" + +[[files]] +file = "scripts/nc_script_addons/MoarRealisticRadiation/rad_preload.zs" +hash = "b4aea7892748ecfa5cf775fb0a18f0909795c0b025666ecaea88bb3a923b4194" + +[[files]] +file = "scripts/nc_script_addons/MoarRealisticRadiation/rad_qmd.zs" +hash = "a07879875ad20ae8e285c3cb39beeee648bd080ec12985b76583ad707a3de3ee" diff --git a/pack.toml b/pack.toml index ae795e6..ece80d4 100644 --- a/pack.toml +++ b/pack.toml @@ -6,7 +6,7 @@ pack-format = "packwiz:1.1.0" [index] file = "index.toml" hash-format = "sha256" -hash = "e5abb0011b8b99392f7b4469ce9849ae680fd3c5a0411838a491f724fc7a7ae9" +hash = "cad267e44e2b7d3fcdf3564bd499eff5cd661141b6c7ab51dc5d783c3693259c" [versions] forge = "14.23.5.2860" diff --git a/scripts/Actually_Addons.zs b/scripts/Actually_Addons.zs new file mode 100644 index 0000000..0ccd296 --- /dev/null +++ b/scripts/Actually_Addons.zs @@ -0,0 +1,7 @@ +#Iron Casing +recipes.remove(); +recipes.addShaped("Iron Casing", , [ + [, , ], + [, , ], + [, , ] +]); \ No newline at end of file diff --git a/scripts/Advanced_Chimneys.zs b/scripts/Advanced_Chimneys.zs new file mode 100644 index 0000000..a0369e2 --- /dev/null +++ b/scripts/Advanced_Chimneys.zs @@ -0,0 +1,28 @@ +import crafttweaker.item.IItemStack; + +var items as IItemStack[] = loadedMods["adchimneys"].items; + +function changeRecipe(item as IItemStack) as bool { + // do not apply function to these items + if (item.definition.id == .definition.id) return false; + if (item.damage != 0) return false; + + var pump as IItemStack = item.definition.makeStack(2); + var vent as IItemStack = item.definition.makeStack(1); + recipes.remove(pump); + + recipes.addShaped( + pump, + [ + [vent, , vent], + [, , ], + [vent, , vent] + ] + ); + + return true; +} + +for i, item in items { + changeRecipe(item); +} \ No newline at end of file diff --git a/scripts/Advanced_Generators.zs b/scripts/Advanced_Generators.zs new file mode 100644 index 0000000..17c03bc --- /dev/null +++ b/scripts/Advanced_Generators.zs @@ -0,0 +1,7 @@ +#Control Circuit +recipes.remove(); +recipes.addShaped("Control Circuit", , [ + [, , ], + [, , ], + [, , ] +]); diff --git a/scripts/ExNihilo&Compressum.zs b/scripts/ExNihilo&Compressum.zs new file mode 100644 index 0000000..7d2b142 --- /dev/null +++ b/scripts/ExNihilo&Compressum.zs @@ -0,0 +1,20 @@ +import mods.jei.JEI.removeAndHide as rh; + +# Duplicate compressed blocks + rh(); + rh(); + rh(); + rh(); + rh(); + +# Crucibles + rh(); + rh(); + rh(); + rh(); + rh(); + rh(); + + rh(); + rh(); + rh(); \ No newline at end of file diff --git a/scripts/GalacticCraft.zs b/scripts/GalacticCraft.zs new file mode 100644 index 0000000..8df9939 --- /dev/null +++ b/scripts/GalacticCraft.zs @@ -0,0 +1 @@ +#Circuit Fabricator \ No newline at end of file diff --git a/scripts/Immersive_Engineering.zs b/scripts/Immersive_Engineering.zs new file mode 100644 index 0000000..c38a209 --- /dev/null +++ b/scripts/Immersive_Engineering.zs @@ -0,0 +1,14 @@ +#Heavy Engineering Block +recipes.remove(); +recipes.addShaped("Heavy Engineering Block", *2, [ + [, , ], + [, , ], + [, , ] +]); +#Iron Mechanical Component +recipes.remove(); +recipes.addShaped("Iron Mechanical Component", , [ + [, , ], + [, , ], + [, , ] +]); \ No newline at end of file diff --git a/scripts/Industrial_Craft_2.zs b/scripts/Industrial_Craft_2.zs new file mode 100644 index 0000000..bde4071 --- /dev/null +++ b/scripts/Industrial_Craft_2.zs @@ -0,0 +1,20 @@ +#Basic Machine Casing +recipes.remove(); +recipes.addShaped("Basic Machine Casing", *2, [ + [, , ], + [, , ], + [, , ] +]); +#Basic Machine Casing 2 +recipes.remove(); +recipes.addShaped("Basic Machine Casing 2", *2, [ + [, , ], + [, , ], + [, , ] +]); +#Reinforced Stone +recipes.addShaped("Reinforced Stone", *16, [ + [, , ], + [, , ], + [, , ] +]); \ No newline at end of file diff --git a/scripts/Mekanism.zs b/scripts/Mekanism.zs new file mode 100644 index 0000000..3506b15 --- /dev/null +++ b/scripts/Mekanism.zs @@ -0,0 +1,34 @@ +import mods.jei.JEI.removeAndHide as rh; + +# Steel Casing +recipes.remove(); +recipes.addShaped("Steel Casing", * 2, [ +[, , ], +[, , ], +[, , ] +]); +# Metalurgic Infuser +recipes.remove(); +recipes.addShaped("Metalurgic Infuser", , [ +[, , ], +[, , ], +[,, ] +]); + +# Removing unused ores & Walkietalkie +rh(); +rh(); +rh(); + +# Factories +recipes.remove(); +recipes.remove(); +recipes.remove(); + +#SuperHeating Element +recipes.remove(); +recipes.addShaped("SuperHeating Element", , [ +[, , ], +[, , ], +[,, ] +]); \ No newline at end of file diff --git a/scripts/Misc.zs b/scripts/Misc.zs new file mode 100644 index 0000000..8a13611 --- /dev/null +++ b/scripts/Misc.zs @@ -0,0 +1,7 @@ +# Furnace +recipes.remove(); +recipes.addShapedMirrored("Furnace", , [ + [, , ], + [, null, ], + [, , ] +]); diff --git a/scripts/RFTools.zs b/scripts/RFTools.zs new file mode 100644 index 0000000..2f3700e --- /dev/null +++ b/scripts/RFTools.zs @@ -0,0 +1,7 @@ +#Machine Frame +recipes.remove(); +recipes.addShaped("Machine Frame", , [ + [,, ], + [, , ], + [, , ] +]); \ No newline at end of file diff --git a/scripts/Thermal_Expansion.zs b/scripts/Thermal_Expansion.zs new file mode 100644 index 0000000..877ec47 --- /dev/null +++ b/scripts/Thermal_Expansion.zs @@ -0,0 +1,10 @@ +import crafttweaker.item.IItemStack; +#modloaded thermalexpansion + +#MachineFrame + recipes.remove(); + mods.forestry.ThermionicFabricator.addCast( * 2, + [[, , ], + [, , ], + [, , ]], + * 10000); \ No newline at end of file diff --git a/scripts/gear.zs b/scripts/gear.zs new file mode 100644 index 0000000..8936621 --- /dev/null +++ b/scripts/gear.zs @@ -0,0 +1,58 @@ +import crafttweaker.item.IItemStack as IItemStack; +import mods.jei.JEI.removeAndHide as rh; + + +rh(); +rh(); +rh(); +rh(); + +val gearsToRemove = [ +, +, +, +, +, +, +, +, +, +, +, +, +, +, +, +, +, +, +, +, +, +, +, +, + + ] as IItemStack[]; + + for items in gearsToRemove { + recipes.remove(items); + } + + recipes.addShaped("TE Wooden Gear", + , + [[null, , null], + [, null, ], + [null, , null]]); + + recipes.addShaped("TE Stone Gear Direct", + , + [[, , ], + [, null, ], + [, , ]]); + + recipes.addShaped("TE Stone Gear Wood", + , + [[null, , null], + [, , ], + [null, , null]]); diff --git a/scripts/nc_script_addons/DONT_PUT_YOUR_SCRIPTS_IN_HERE b/scripts/nc_script_addons/DONT_PUT_YOUR_SCRIPTS_IN_HERE new file mode 100644 index 0000000..e69de29 diff --git a/scripts/nc_script_addons/MoarFuels/.DS_Store b/scripts/nc_script_addons/MoarFuels/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/scripts/nc_script_addons/MoarFuels/.DS_Store differ diff --git a/scripts/nc_script_addons/MoarFuels/preload_mf.zs b/scripts/nc_script_addons/MoarFuels/preload_mf.zs new file mode 100644 index 0000000..f6fa2ad --- /dev/null +++ b/scripts/nc_script_addons/MoarFuels/preload_mf.zs @@ -0,0 +1,9 @@ +#priority 10 + +import crafttweaker.oredict.IOreDict; +import crafttweaker.oredict.IOreDictEntry; +import mods.nuclearcraft.Enricher; + + +oreDict.QuantumTraverseYouNeedToLearnHowToChillOut; +.add(); \ No newline at end of file diff --git a/scripts/nc_script_addons/MoarFuels/super_fuels_cores.zs b/scripts/nc_script_addons/MoarFuels/super_fuels_cores.zs new file mode 100644 index 0000000..cd157b3 --- /dev/null +++ b/scripts/nc_script_addons/MoarFuels/super_fuels_cores.zs @@ -0,0 +1,220 @@ +/* +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.) +*/ + +#modloaded trinity + +import crafttweaker.item.IIngredient; +import crafttweaker.item.IItemStack; +import crafttweaker.liquid.ILiquidStack; +import crafttweaker.oredict.IOreDict; +import crafttweaker.oredict.IOreDictEntry; +import mods.nuclearcraft.FuelReprocessor; +import mods.nuclearcraft.SolidFission; +import mods.nuclearcraft.Assembler; +import mods.nuclearcraft.DecayHastener; + +/* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Subcritical Spheres -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ + +//oreDic +var oreDictList = ["ingotU233Sphere","ingotU235Sphere","ingotP239Sphere","ingotA242Sphere","ingotCm247Sphere","ingotB248Sphere","ingotCf249Sphere","ingotCf251Sphere","ingotDepletedU233Sphere","ingotDepletedU235Sphere","ingotDepletedP239Sphere","ingotDepletedA242Sphere","ingotDepletedCm247Sphere","ingotDepletedB248Sphere","ingotDepletedCf249Sphere","ingotDepletedCf251Sphere","ingotPlutonium236"] as string[]; +for entry in oreDictList { + oreDict.entry; +} + +var realOreDictList = [,,,,,,,] as IOreDictEntry[]; +val realOreDictList2 = [,,,,,,,] as IOreDictEntry[]; +val fuelList = [,,,,,,,] as IItemStack[]; +val pitList = [,,,,,,,] as IItemStack[]; +val dFuelList = [,,,,,,,] as IItemStack[]; + +// time, heat, criticality, fisProd1 chance, fisProd2 chance +val intStats = [[2666,1728,16,200,200],[4800,960,20,200,200],[4572,1008,20,200,200],[1476,3210,13,200,200],[2150,2144,15,80,80],[2166,2128,13,80,80],[1066,4320,12,80,80],[2000,2304,14,80,80]] as int[][]; +// efficiency, process radiation, depleted radiation, starter radiation +var doubleStats = [[1.3,2.36E-04,1.51E-02,5.56E-06],[1.2,1.15E-04,7.37E-03,1.26E-09],[1.4,1.58E-03,1.01E-01,3.69E-05],[1.55,1.36E-03,8.67E-02,1.21E-04],[1.75,6.88E-04,4.40E-02,5.70E-08],[1.85,7.52E-03,3.83E-01,9.88E-02],[1.95,4.16E-02,2.66E+00,2.53E-03],[2.00,5.17E-02,3.31E+00,9.88E-04]] as double[][]; +var fuelDF = [0.065,0.065,0.075,0.08,0.085,0.090,0.10,0.10] as double[]; + +//MoarRealisticRadiation Compatability +if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") { + doubleStats = [[1.3,2.28E-04,1.51E-02,5.56E-06],[1.2,1.67E-04,7.37E-03,1.26E-09],[1.4,7.98E-04,1.01E-01,3.69E-05],[1.55,7.03E-04,8.67E-02,1.21E-04],[1.75,8.79E-04,4.40E-02,5.70E-08],[1.85,5.76E-03,3.83E-01,9.88E-02],[1.95,1.05E-02,2.66E+00,2.53E-03],[2.00,2.74E-02,3.31E+00,9.88E-04]] as double[][]; +} + + +val reprocessing = [[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,]] as IIngredient[][]; + +for i,entry in realOreDictList { + realOreDictList2[i].add(fuelList[i]); + entry.add(dFuelList[i]); + + mods.nuclearcraft.Assembler.addRecipe(pitList[i], null, null, null, fuelList[i]*9); + mods.nuclearcraft.SolidFission.addRecipe(fuelList[i], dFuelList[i], intStats[i][0], intStats[i][1], doubleStats[i][0], intStats[i][2], fuelDF[i], true, doubleStats[i][1]); + + val actProd = mods.nuclearcraft.ChanceItemIngredient.create(reprocessing[i][1], 50); + var fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create(reprocessing[i][4]*2, intStats[i][3]); + if(intStats[i][3]!=200){ + fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create(reprocessing[i][4]*3, intStats[i][3]); + } + val fisProd2 = mods.nuclearcraft.ChanceItemIngredient.create(reprocessing[i][5]*2, intStats[i][4]); + mods.nuclearcraft.FuelReprocessor.addRecipe(dFuelList[i]*9, reprocessing[i][0], actProd, fisProd1, .amount(4), reprocessing[i][2], reprocessing[i][3], fisProd2, null); + + mods.nuclearcraft.Radiation.setRadiationLevel(dFuelList[i], doubleStats[i][2]); + mods.nuclearcraft.Radiation.setRadiationLevel(fuelList[i], doubleStats[i][3]); +} + +// Np-237 Stuff +.add(); +.add(); +.add(); + +mods.nuclearcraft.Assembler.addRecipe(, null, null, null, *9); + +if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") { + mods.nuclearcraft.FissionIrradiator.addRecipe(, , 283968, 2.03, 1.05, 3.16E-05); +}else{ + mods.nuclearcraft.FissionIrradiator.addRecipe(, , 283968, 2.03, 1.05, 6.52E-04); +} + +val actProd = mods.nuclearcraft.ChanceItemIngredient.create(*2, 75); +var fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create(, 25); +var fisProd2 = mods.nuclearcraft.ChanceItemIngredient.create(, 25); + +mods.nuclearcraft.FuelReprocessor.addRecipe(*9, , *3, fisProd1, .amount(4), actProd, *2, fisProd2, null); +mods.nuclearcraft.Radiation.setRadiationLevel(, 4.17E-02); +mods.nuclearcraft.Radiation.setRadiationLevel(, 4.15E-07); + + + +/* -=-=-=-=-=-=-=-=-=- PBP Fuels -=-=-=-=-=-=-=-=-=- */ +val graphite = |; +val zirconium = |; + + +//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 + //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], 0.075, 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 fissProd1 = mods.nuclearcraft.ChanceFluidIngredient.create(prod[4]*16, integs[2], 16); + val fissProd2 = mods.nuclearcraft.ChanceFluidIngredient.create(prod[5]*16, integs[3], 16); + mods.nuclearcraft.Centrifuge.addRecipe(array[5]*144, prod[0], prod[1], fissProd1, prod[2], prod[3], fissProd2); +} + +val pbpFuels = [,,,,] as IItemStack[]; +val dpbpFuels = [,,,] as IIngredient[]; +val dpbpFuels2 = [,,,] as IItemStack[]; + +val eff = 1.25; +val stats = [[2200,262,73],[2750,210,91],[1760,328,62],[1981,291,66]] as int[][]; +var burnrad = 1.23E-02; +val pebble = ; +val fuelN2 = ; + +// MRR Compat +if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") { + burnrad = 3.56E-04; +} + +val fluidFuelNames= [,,,,,] as ILiquidStack[]; +val fluidProd= [*16,*16,*32,*64,,] as ILiquidStack[]; +val moltenTimes = 19.09722222; +val fisProdChance = [25,25] as int[]; +val ddecayRad=1.28E-02; + +oreDict.ingotPBP; +.add(); + +var pu236rad=3.50E-01; +var pu236decay=; +if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") { + pu236rad=1.11E-03; +} +if (loadedMods has "qmd") { + pu236decay=; +} + +mods.nuclearcraft.FissionIrradiator.addRecipe(, , 75692, 0.0, 0.0, 3.50E-01); +mods.nuclearcraft.DecayHastener.addRecipe(, ,1.0,1.0,3.50E-01); + + +oreDictList = ["ingotPBPAll","ingotDepletedPBPAll"] as string[]; +for entry in oreDictList { + oreDict.entry; +} +realOreDictList = [,] as IOreDictEntry[]; + +//non-base recipes +for i,item in pbpFuels{ + mods.nuclearcraft.Radiation.setRadiationLevel(item, 7.75E-01); + realOreDictList[0].add(item); +} +mods.nuclearcraft.AlloyFurnace.addRecipe(pbpFuels[0], graphite, pbpFuels[1]); +mods.nuclearcraft.Infuser.addRecipe(pbpFuels[0], *1000, pbpFuels[2]); +mods.nuclearcraft.Infuser.addRecipe(pbpFuels[0], *1000, pbpFuels[3]); +mods.nuclearcraft.AlloyFurnace.addRecipe(pbpFuels[0], zirconium, pbpFuels[4]); +furnace.addRecipe(fuelN2, pbpFuels[3]); +furnace.addRecipe(fuelN2, pbpFuels[2]); +mods.nuclearcraft.Separator.addRecipe(pbpFuels[1], pbpFuels[0], ); +mods.nuclearcraft.Separator.addRecipe(pbpFuels[4], pbpFuels[0], ); +//pebbles +mods.nuclearcraft.Assembler.addRecipe(pbpFuels[1]*9, , , , pebble*9); +if (oreDict has "QuantumTraverseWhyCanISteamMyCrabs") { + mods.nuclearcraft.SolidFission.addRecipe(pebble, dpbpFuels[0], stats[3][0], stats[3][1], eff, stats[3][2], 0.075, false, burnrad); +}else{ + mods.nuclearcraft.PebbleFission.addRecipe(pebble, dpbpFuels[0], stats[0][0], stats[0][1], eff, stats[2][2], 0.075, false, burnrad); +} +mods.nuclearcraft.Radiation.setRadiationLevel(pebble, 7.75E-01); +realOreDictList[0].add(pebble); +//oxide +mods.nuclearcraft.SolidFission.addRecipe(pbpFuels[2], dpbpFuels[1], stats[0][0], stats[0][1], eff, stats[0][2], 0.075, false, burnrad); +//nitride +mods.nuclearcraft.SolidFission.addRecipe(pbpFuels[3], dpbpFuels[2], stats[1][0], stats[1][1], eff, stats[1][2], 0.075, false, burnrad); +//zirconium +mods.nuclearcraft.SolidFission.addRecipe(pbpFuels[4], dpbpFuels[3], stats[2][0], stats[2][1], eff, stats[2][2], 0.075, false, burnrad); +//melting time +superMelt(pbpFuels[0], fluidFuelNames, fluidProd, [moltenTimes, eff, burnrad] as double[], [stats[0][1],stats[0][2], fisProdChance[0], fisProdChance[1]] as int[], false); + + +fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create(, 25); +fisProd2 = mods.nuclearcraft.ChanceItemIngredient.create(, 25); + +//reprocessing +//triso +mods.nuclearcraft.FuelReprocessor.addRecipe(dpbpFuels[0] * 9, , , fisProd1, .amount(3), * 2, *4, fisProd2, ); +//oxide +mods.nuclearcraft.FuelReprocessor.addRecipe(dpbpFuels[1] * 9, , , fisProd1, null, * 2, *4, fisProd2, null); +//nitride +mods.nuclearcraft.FuelReprocessor.addRecipe(dpbpFuels[2] * 9, , , fisProd1, null, * 2, *4, fisProd2, null); +//zirc +mods.nuclearcraft.FuelReprocessor.addRecipe(dpbpFuels[3] * 9, , , fisProd1, , * 2, *4, fisProd2, null); + + +for j,item in dpbpFuels{ + mods.nuclearcraft.Radiation.setRadiationLevel(item, ddecayRad); + realOreDictList[1].add(dpbpFuels2[j]); +} diff --git a/scripts/nc_script_addons/MoarFuels/super_fuels_crazy.zs b/scripts/nc_script_addons/MoarFuels/super_fuels_crazy.zs new file mode 100644 index 0000000..9fe76de --- /dev/null +++ b/scripts/nc_script_addons/MoarFuels/super_fuels_crazy.zs @@ -0,0 +1,709 @@ +/* +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; +import mods.nuclearcraft.Manufactory; + + +//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, enrich as int){ + //array is molten, fluoride, FLiBe, dFLiBe, dF, dMolten + //prod is 4 actinides, 2 fission products + //doub is time, efficiency, radiation, decay product + //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 stackerino = 16*enrich; + val fisProd1 = mods.nuclearcraft.ChanceFluidIngredient.create(prod[4]*stackerino, integs[2], 16); + val fisProd2 = mods.nuclearcraft.ChanceFluidIngredient.create(prod[5]*stackerino, integs[3], 16); + mods.nuclearcraft.Centrifuge.addRecipe(array[5]*144, prod[0], prod[1], fisProd1, prod[2], prod[3], fisProd2); +} + + + +//does the crafting recipes, sets radiation, & adds the oreDict (does not declare) +function craftTime(fis as IIngredient[], fer as IIngredient[], pellet as IItemStack[], oreName as IOreDictEntry, enrich as int, radiation as double){ + for i,item in pellet{ + mods.nuclearcraft.Radiation.setRadiationLevel(item, radiation); + oreName.add(item); + if(enrich == 2){ + recipes.addShapeless(item * 9,[fis[i], fis[i], fer[i], fer[i], fer[i], fer[i], fer[i], fer[i], fer[i]]); + } + if(enrich == 4){ + recipes.addShapeless(item * 9,[fis[i], fis[i], fis[i], fis[i], fer[i], fer[i], fer[i], fer[i], fer[i]]); + } + if(enrich == 5){ + recipes.addShapeless(item * 9,[fis[i], fis[i], fis[i], fis[i], fis[i], fer[i], fer[i], fer[i], fer[i]]); + } + if(enrich == 6){ + recipes.addShapeless(item * 9,[fis[i], fis[i], fis[i], fis[i], fis[i], fis[i], fer[i], fer[i], fer[i]]); + } + if(enrich == 7){ + recipes.addShapeless(item * 9,[fis[i], fis[i], fis[i], fis[i], fis[i], fis[i], fis[i], fer[i], fer[i]]); + } + if(enrich == 8){ + recipes.addShapeless(item * 9,[fis[i], fis[i], fis[i], fis[i], fis[i], fis[i], fis[i], fis[i], fer[i]]); + } + if(enrich == 9){ + recipes.addShapeless(item * 9,[fis[i], fis[i], fis[i], fis[i], fis[i], fis[i], fis[i], fis[i], fis[i]]); + } + } +} + +var secretStuff = [null] as ILiquidStack[]; +if(oreDict has "QuantumTraverseHowCanYouPossiblyNotBeDoneYetWithTheStrangeNamingSystem"){ + secretStuff = [,,,,,,,,,] as ILiquidStack[]; +} + +// does the major lifting +function theBigCheese(fis as IIngredient[], fert as IIngredient[], 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[], secretStuff as ILiquidStack[]){ + //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 + + //crafting + craftTime(fis, fert, pellet, oreNames[0], integs[0], fuelDoubles[1]); + + //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], ); + var num = 9-integs[0] as int; + var num2 = integs[0] as int; + if(integs[0]!=9){ + if (!(oreDict has "QuantumTraverseHowCanYouPossiblyNotBeDoneYetWithTheStrangeNamingSystem") || fuelInts[0][0]!=4800) { + mods.nuclearcraft.Separator.addRecipe(pellet[0]*9, fert[0]*num, fis[0]*num2); + } + }else{ + mods.nuclearcraft.Manufactory.addRecipe(pellet[0], fis[0], 0.01, 1.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, integs[0]); + + + //decayed fuel stuff + for i,item in dpellet{ + mods.nuclearcraft.Radiation.setRadiationLevel(item, fuelDoubles[3]); + oreNames[1].add(dpellet2[i]); + } + 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]==5||integs[0]==7||integs[0]==9){ + graphite = * (num2/2); + zirconium = * (num/2); + } + + var changed = null; + if(integs[3]!=4){ + changed = mods.nuclearcraft.ChanceItemIngredient.create(solidProd[0][integs[3]], 50); + } + if(integs[3]==0){ + //triso + mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[0] * 9, changed, solidProd[0][1], fisProd1, graphite, solidProd[0][2], solidProd[0][3], fisProd2, ); + //oxide + changed = mods.nuclearcraft.ChanceItemIngredient.create(solidProd[1][integs[3]], 50); + mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[1] * 9, changed, solidProd[1][1], fisProd1, null, solidProd[1][2], solidProd[1][3], fisProd2, null); + //nitride + changed = mods.nuclearcraft.ChanceItemIngredient.create(solidProd[2][integs[3]], 50); + mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[2] * 9, changed, solidProd[2][1], fisProd1, null, solidProd[2][2], solidProd[2][3], fisProd2, null); + //zirc + changed = mods.nuclearcraft.ChanceItemIngredient.create(solidProd[3][integs[3]], 50); + mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[3] * 9, changed, solidProd[3][1], fisProd1, zirconium, solidProd[3][2], solidProd[3][3], fisProd2, null); + } + if(integs[3]==1){ + //triso + mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[0] * 9, solidProd[0][0], changed, fisProd1, graphite, solidProd[0][2], solidProd[0][3], fisProd2, ); + //oxide + changed = mods.nuclearcraft.ChanceItemIngredient.create(solidProd[1][integs[3]], 50); + mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[1] * 9, solidProd[1][0], changed, fisProd1, null, solidProd[1][2], solidProd[1][3], fisProd2, null); + //nitride + changed = mods.nuclearcraft.ChanceItemIngredient.create(solidProd[2][integs[3]], 50); + mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[2] * 9, solidProd[2][0], changed, fisProd1, null, solidProd[2][2], solidProd[2][3], fisProd2, null); + //zirc + changed = mods.nuclearcraft.ChanceItemIngredient.create(solidProd[3][integs[3]], 50); + mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[3] * 9, solidProd[3][0], changed, fisProd1, zirconium, solidProd[3][2], solidProd[3][3], fisProd2, null); + } + if(integs[3]==2){ + //triso + mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[0] * 9, solidProd[0][0], solidProd[0][1], fisProd1, graphite, changed, solidProd[0][3], fisProd2, ); + //oxide + changed = mods.nuclearcraft.ChanceItemIngredient.create(solidProd[1][integs[3]], 50); + mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[1] * 9, solidProd[1][0], solidProd[1][1], fisProd1, null, changed, solidProd[1][3], fisProd2, null); + //nitride + changed = mods.nuclearcraft.ChanceItemIngredient.create(solidProd[2][integs[3]], 50); + mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[2] * 9, solidProd[2][0], solidProd[2][1], fisProd1, null, changed, solidProd[2][3], fisProd2, null); + //zirc + changed = mods.nuclearcraft.ChanceItemIngredient.create(solidProd[3][integs[3]], 50); + mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[3] * 9, solidProd[3][0], solidProd[3][1], fisProd1, zirconium, changed, solidProd[3][3], fisProd2, null); + } + if(integs[3]==3){ + //triso + mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[0] * 9, solidProd[0][0], solidProd[0][1], fisProd1, graphite, solidProd[0][2], changed, fisProd2, ); + //oxide + changed = mods.nuclearcraft.ChanceItemIngredient.create(solidProd[1][integs[3]], 50); + mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[1] * 9, solidProd[1][0], solidProd[1][1], fisProd1, null, solidProd[1][2], changed, fisProd2, null); + //nitride + changed = mods.nuclearcraft.ChanceItemIngredient.create(solidProd[2][integs[3]], 50); + mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[2] * 9, solidProd[2][0], solidProd[2][1], fisProd1, null, solidProd[2][2], changed, fisProd2, null); + //zirc + changed = mods.nuclearcraft.ChanceItemIngredient.create(solidProd[3][integs[3]], 50); + mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[3] * 9, solidProd[3][0], solidProd[3][1], fisProd1, zirconium, solidProd[3][2], changed, fisProd2, null); + } + if(integs[3]==4){ + //triso + mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[0] * 9, solidProd[0][0], solidProd[0][1], fisProd1, graphite, solidProd[0][2], solidProd[0][3], fisProd2, ); + //oxide + changed = mods.nuclearcraft.ChanceItemIngredient.create(solidProd[1][integs[3]], 50); + mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[1] * 9, solidProd[1][0], solidProd[1][1], fisProd1, null, solidProd[1][2], solidProd[1][3], fisProd2, null); + //nitride + changed = mods.nuclearcraft.ChanceItemIngredient.create(solidProd[2][integs[3]], 50); + mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[2] * 9, solidProd[2][0], solidProd[2][1], fisProd1, null, solidProd[2][2], solidProd[2][3], fisProd2, null); + //zirc + changed = mods.nuclearcraft.ChanceItemIngredient.create(solidProd[3][integs[3]], 50); + mods.nuclearcraft.FuelReprocessor.addRecipe(dpellet[3] * 9, solidProd[3][0], solidProd[3][1], fisProd1, zirconium, solidProd[3][2], solidProd[3][3], fisProd2, null); + } +} + + +/* -=-=-=-=-=-=-=-=-=-=-=-=-=-=- time to actually run now -=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ + +val fuelLives = [[2666,3348,2134,2399],[4800,6000,3840,4320],[1972,2462,1574,1775],[4572,5760,3646,4115],[3164,3946,2526,2848],[1476,1846,1180,1328],[1500,1870,1200,1350],[2420,3032,1932,2178],[2150,2692,1714,1935],[2166,2716,1734,1949],[1066,1334,852,959],[2000,2504,1600,1800],[360,450,288,324],[440,550,352,396]] as int[][]; +val fuelHeats = [[216,172,270,240],[120,96,150,133],[292,234,366,324],[126,100,158,140],[182,146,228,202],[390,312,488,433],[384,308,480,427],[238,190,298,264],[268,214,336,298],[266,212,332,296],[540,432,676,600],[288,230,360,320],[1600,1280,2000,1778],[1310,1048,1638,1456]] as int[][]; +val criticalities = [[[52,62,44,47],[31,37,26,28],[26,31,22,23],[22,26,19,20],[20,24,17,18],[17,20,14,15],[16,19,14,14]],[[68,82,58,61],[41,49,35,37],[34,41,29,31],[29,35,25,26],[26,31,22,23],[23,28,20,21],[20,24,17,18]],[[47,56,40,42],[28,34,24,25],[23,28,20,21],[20,24,17,18],[18,22,15,16],[16,19,14,14],[14,17,12,13]],[[66,79,56,59],[40,48,34,36],[33,40,28,30],[28,34,24,25],[25,30,21,23],[22,26,19,20],[20,24,17,18]],[[56,67,48,50],[34,41,29,31],[28,34,24,25],[24,29,20,22],[21,25,18,19],[19,23,16,17],[17,20,14,15]],[[44,53,37,40],[26,31,22,23],[22,26,19,20],[19,23,16,17],[17,20,14,15],[15,18,13,14],[13,16,11,12]],[[50,60,43,45],[30,36,26,27],[25,30,21,23],[21,25,18,19],[19,23,16,17],[17,20,14,15],[15,18,13,14]],[[48,58,41,43],[29,35,25,26],[24,29,20,22],[21,25,18,19],[18,22,15,16],[16,19,14,14],[14,17,12,13]],[[49,59,42,44],[29,35,25,26],[24,29,20,22],[21,25,18,19],[18,22,15,16],[16,19,14,14],[15,18,13,14]],[[43,52,37,39],[26,31,22,23],[22,26,19,20],[19,23,16,17],[16,19,14,14],[14,17,12,13],[13,16,11,12]],[[30,36,26,27],[24,29,20,22],[20,24,17,18],[17,20,14,15],[15,18,13,14],[13,16,11,12],[12,14,10,11]],[[47,56,40,42],[28,34,24,25],[24,29,20,22],[20,24,17,18],[18,22,15,16],[16,19,14,14],[14,17,12,13]],[[13,16,11,12],[8,10,7,7],[7,8,6,6],[6,7,5,5],[5,6,4,5],[4,5,3,4],[4,5,3,4]],[[17,20,14,15],[10,12,9,9],[8,10,7,7],[7,8,6,6],[6,7,5,5],[6,7,5,5],[5,6,4,5,5]]] as int[][][]; +val fuelDecayFactor = [0.065,0.065,0.070,0.075,0.075,0.08,0.085,0.085,0.085,0.090,0.10,0.10,0.10,0.105] as double[]; + + +//all baseEff values are set to 0.025 below the LE fuel value for efficiency +val baseEff = [1.075,0.975,1.075,1.175,1.225,1.325,1.425,1.475,1.525,1.625,1.725,1.775,1.875,1.975] as double[]; + + +//array is molten, fluoride, FLiBe, dFLiBe, dF, dMolten +//val array = [[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,]] as ILiquidStack[][]; + +val array = [[[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,]],[[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,]],[[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,]],[[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,]],[[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,]],[[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,]],[[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,]],[[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,]],[[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,]],[[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,]],[[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,]],[[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,]],[[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,]],[[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,],[,,,,,]]] as ILiquidStack[][][]; + +var enrich= ["ME","VHE","XE","SE","UE","WG","IP"] as string[]; +var isos= ["U233","U235","N236","P239","P241","A242","Cm243","Cm245","Cm247","B248","Cf249","Cf251","Cf253","E254"] as string[]; + +//val oreDictStuff = [[,],[,],[,],[,],[,],[,],[,]] as IOreDictEntry[][]; + +val oreDictStuff = [[[,],[,],[,],[,],[,],[,],[,]],[[,],[,],[,],[,],[,],[,],[,]],[[,],[,],[,],[,],[,],[,],[,]],[[,],[,],[,],[,],[,],[,],[,]],[[,],[,],[,],[,],[,],[,],[,]],[[,],[,],[,],[,],[,],[,],[,]],[[,],[,],[,],[,],[,],[,],[,]],[[,],[,],[,],[,],[,],[,],[,]],[[,],[,],[,],[,],[,],[,],[,]],[[,],[,],[,],[,],[,],[,],[,]],[[,],[,],[,],[,],[,],[,],[,]],[[,],[,],[,],[,],[,],[,],[,]],[[,],[,],[,],[,],[,],[,],[,]],[[,],[,],[,],[,],[,],[,],[,]]] as IOreDictEntry[][][]; + +for enr in enrich{ + for iso in isos{ + var entry = "ingot"~enr~iso~"All"; + oreDict.entry; + entry = "ingotDepleted"~enr~iso~"All"; + oreDict.entry; + } +} + +enrich= ["me","vhe","xe","se","ue","wg","ip"] as string[]; +isos= ["u_233","u_235","n_236","p_239","p_241","a_242","cm_243","cm_245","cm_247","b_248","cf_249","cf_251","cf_253","e_254"] as string[]; + +val fisFertFinder = { + "u_233" : ["u233","u238"], + "u_235" : ["u235","u238"], + "n_236" : ["np236","np237"], + "p_239" : ["pu239","pu242"], + "p_241" : ["pu241","pu242"], + "a_242" : ["am242","am243"], + "cm_243" : ["cm243","cm246"], + "cm_245" : ["cm245","cm246"], + "cm_247" : ["cm247","cm246"], + "b_248" : ["bk248","bk247"], + "cf_249" : ["cf249","cf252"], + "cf_251" : ["cf251","cf252"], + "cf_253" : ["cf253","cf252"], + "e_254" : ["es254","es255"] +} as string[][string]; + +val isoFinder = { + "sr90" : [,,,,], + "mo99" : [,,,,], + "ru106" : [,,,,], + "cs137" : [,,,,], + "pm147" : [,,,,], + "eu155" : [,,,,], + "u233" : [,,,,], + "u235" : [,,,,], + "u238" : [,,,,], + "np236" : [,,,,], + "np237" : [,,,,], + "pu238" : [,,,,], + "pu239" : [,,,,], + "pu241" : [,,,,], + "pu242" : [,,,,], + "am241" : [,,,,], + "am242" : [,,,,], + "am243" : [,,,,], + "cm243" : [,,,,], + "cm245" : [,,,,], + "cm246" : [,,,,], + "cm247" : [,,,,], + "bk247" : [,,,,], + "bk248" : [,,,,], + "cf249" : [,,,,], + "cf250" : [,,,,], + "cf251" : [,,,,], + "cf252" : [,,,,], + "cf253" : [,,,,], + "cf254" : [,,,,], + "es254" : [,,,,], + "es255" : [,,,,], + "fm257" : [,,,,] +} as IIngredient[][string]; + +val liquidFinder = { + "sr90" : , + "mo99" : , + "ru106" : , + "cs137" : , + "pm147" : , + "eu155" : , + "u233" : , + "u235" : , + "u238" : , + "np236" : , + "np237" : , + "pu238" : , + "pu239" : , + "pu241" : , + "pu242" : , + "am241" : , + "am242" : , + "am243" : , + "cm243" : , + "cm245" : , + "cm246" : , + "cm247" : , + "bk247" : , + "bk248" : , + "cf249" : , + "cf250" : , + "cf251" : , + "cf252" : , + "cf253" : , + "cf254" : , + "es254" : , + "es255" : , + "fm257" : +} as ILiquidStack[string]; + +var radFinder = { + "sr90" : 3.47E-02, + "mo99" : 0.0, + "ru106" : 9.77E-01, + "cs137" : 3.31E-02, + "pm147" : 3.81E-01, + "eu155" : 2.10E-01, + "u233" : 6.25E-06, + "u235" : 1.42E-09, + "u238" : 2.24E-10, + "np236" : 6.49E-06, + "np237" : 4.66E-07, + "pu238" : 1.14E-02, + "pu239" : 4.15E-05, + "pu241" : 6.98E-02, + "pu242" : 2.67E-06, + "am241" : 2.31E-03, + "am242" : 0.007092198582, + "am243" : 0.0001356852103, + "cm243" : 3.44E-02, + "cm245" : 1.18E-04, + "cm246" : 2.11E-04, + "cm247" : 6.41E-08, + "bk247" : 0.0007246376812, + "bk248" : 0.1111111111, + "cf249" : 0.002849002849, + "cf250" : 0.07645259939, + "cf251" : 0.001111111111, + "cf252" : 0.3780718336, + "cf253" : 20.50814149, + "cf254" : 6.037190083, + "es254" : 1.324809576, + "es255" : 9.177135678, + "fm257" : 3.634328358 +} as double[string]; + +// MRR Compat +if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") { +radFinder = { + "sr90" : 1.74E-02, + "mo99" : 0.0, + "ru106" : 4.88E-01, + "cs137" : 4.81E-02, + "pm147" : 1.91E-01, + "eu155" : 2.85E-01, + "u233" : 1.78E-05, + "u235" : 1.07E-08, + "u238" : 1.25E-09, + "np236" : 1.62E-05, + "np237" : 1.27E-06, + "pu238" : 3.30E-03, + "pu239" : 5.35E-05, + "pu241" : 3.50E-02, + "pu242" : 6.25E-07, + "am241" : 2.34E-03, + "am242" : 6.86E-03, + "am243" : 3.02E-04, + "cm243" : 4.00E-02, + "cm245" : 1.76E-04, + "cm246" : 4.16E-05, + "cm247" : 2.43E-07, + "bk247" : 1.42E-03, + "bk248" : 8.89E-02, + "cf249" : 2.92E-03, + "cf250" : 1.78E-02, + "cf251" : 1.73E-03, + "cf252" : 1.04E+00, + "cf253" : 3.49E+00, + "cf254" : 9.07E+00, + "es254" : 1.52E+00, + "es255" : 2.63E+00, + "fm257" : 1.46E+00 +} as double[string]; +} + +val repIsoFinder = { + "meu_233" : ["u238","pu239","pu242","am243","sr90","cs137"], + "vheu_233" : ["u238","pu242","am242","am243","sr90","cs137"], + "xeu_233" : ["u235","u238","np237","pu242","sr90","cs137"], + "seu_233" : ["u235","u238","np237","pu241","sr90","cs137"], + "ueu_233" : ["u235","u238","np237","pu239","sr90","cs137"], + "wgu_233" : ["u235","u238","np236","np237","sr90","cs137"], + "ipu_233" : ["u235","u238","np236","np237","sr90","cs137"], + "meu_235" : ["u238","np237","pu242","am243","mo99","cs137"], + "vheu_235" : ["u238","np236","np237","pu242","mo99","cs137"], + "xeu_235" : ["u238","np237","pu239","pu242","mo99","cs137"], + "seu_235" : ["u238","np237","pu239","pu241","mo99","cs137"], + "ueu_235" : ["u238","np237","pu239","pu241","mo99","cs137"], + "wgu_235" : ["u238","np236","np237","pu241","mo99","cs137"], + "ipu_235" : ["u238","np236","np237","pu239","mo99","cs137"], + "men_236" : ["u238","np237","pu241","pu242","mo99","cs137"], + "vhen_236" : ["u238","np237","pu239","pu242","mo99","cs137"], + "xen_236" : ["u238","np237","pu239","pu242","mo99","cs137"], + "sen_236" : ["u238","np237","pu238","pu242","mo99","cs137"], + "uen_236" : ["u238","np237","pu239","pu241","mo99","cs137"], + "wgn_236" : ["u238","np237","pu239","pu241","mo99","cs137"], + "ipn_236" : ["u238","np237","pu238","pu239","mo99","cs137"], + "mep_239" : ["pu242","am242","am243","cm246","sr90","pm147"], + "vhep_239" : ["pu241","pu242","am243","cm243","sr90","pm147"], + "xep_239" : ["pu241","pu242","am243","cm243","sr90","pm147"], + "sep_239" : ["pu241","pu242","am242","am243","sr90","pm147"], + "uep_239" : ["pu241","pu242","am242","am243","sr90","pm147"], + "wgp_239" : ["pu241","pu242","am242","am243","sr90","pm147"], + "ipp_239" : ["pu241","pu242","am242","am243","sr90","pm147"], + "mep_241" : ["pu242","am243","cm246","bk247","sr90","pm147"], + "vhep_241" : ["am241","am242","am243","cm246","sr90","pm147"], + "xep_241" : ["pu242","am242","am243","cm246","sr90","pm147"], + "sep_241" : ["pu242","am242","am243","cm246","sr90","pm147"], + "uep_241" : ["pu242","am242","am243","cm243","sr90","pm147"], + "wgp_241" : ["pu242","am241","am242","am243","sr90","pm147"], + "ipp_241" : ["pu242","am241","am242","am243","sr90","pm147"], + "mea_242" : ["am243","cm245","cm246","bk248","mo99","pm147"], + "vhea_242" : ["am243","cm246","cm247","bk247","mo99","pm147"], + "xea_242" : ["am243","cm243","cm246","cm247","mo99","pm147"], + "sea_242" : ["am243","cm243","cm245","cm246","mo99","pm147"], + "uea_242" : ["am243","cm243","cm245","cm246","mo99","pm147"], + "wga_242" : ["am243","cm243","cm245","cm246","mo99","pm147"], + "ipa_242" : ["am243","cm243","cm245","cm246","mo99","pm147"], + "mecm_243" : ["cm246","cm247","bk247","bk248","mo99","pm147"], + "vhecm_243" : ["cm245","cm246","bk247","bk248","mo99","pm147"], + "xecm_243" : ["cm245","cm246","bk247","bk248","mo99","pm147"], + "secm_243" : ["cm245","cm246","bk247","bk248","mo99","pm147"], + "uecm_243" : ["cm245","cm246","bk247","bk248","mo99","pm147"], + "wgcm_243" : ["cm245","cm246","bk247","bk248","mo99","pm147"], + "ipcm_243" : ["cm245","cm246","cm247","bk248","mo99","pm147"], + "mecm_245" : ["cm246","cm247","bk247","cf249","mo99","eu155"], + "vhecm_245" : ["cm246","cm247","bk247","cf249","mo99","eu155"], + "xecm_245" : ["cm246","cm247","bk247","cf249","mo99","eu155"], + "secm_245" : ["cm246","cm247","bk247","bk248","mo99","eu155"], + "uecm_245" : ["cm246","cm247","bk247","bk248","mo99","eu155"], + "wgcm_245" : ["cm246","cm247","bk247","bk248","mo99","eu155"], + "ipcm_245" : ["cm246","cm247","bk247","bk248","mo99","eu155"], + "mecm_247" : ["cm246","bk247","bk248","cf249","mo99","eu155"], + "vhecm_247" : ["bk247","bk248","cf249","cf251","mo99","eu155"], + "xecm_247" : ["bk247","bk248","cf249","cf251","mo99","eu155"], + "secm_247" : ["bk247","bk248","cf249","cf251","mo99","eu155"], + "uecm_247" : ["bk247","bk248","cf249","cf251","mo99","eu155"], + "wgcm_247" : ["bk247","bk248","cf249","cf251","mo99","eu155"], + "ipcm_247" : ["bk247","bk248","cf249","cf252","mo99","eu155"], + "meb_248" : ["bk247","bk248","cf249","cf252","ru106","pm147"], + "vheb_248" : ["bk248","cf249","cf251","cf252","ru106","pm147"], + "xeb_248" : ["bk248","cf249","cf251","cf252","ru106","pm147"], + "seb_248" : ["bk248","cf249","cf251","cf252","ru106","pm147"], + "ueb_248" : ["bk248","cf249","cf251","cf252","ru106","pm147"], + "wgb_248" : ["bk248","cf249","cf251","cf252","ru106","pm147"], + "ipb_248" : ["bk248","cf249","cf251","cf252","ru106","pm147"], + "mecf_249" : ["cf251","cf252","cf252","cf252","ru106","pm147"], + "vhecf_249" : ["cf251","cf252","cf252","cf252","ru106","pm147"], + "xecf_249" : ["cf252","cf252","cf252","cf253","ru106","pm147"], + "secf_249" : ["cf251","cf252","cf252","cf253","ru106","pm147"], + "uecf_249" : ["cf250","cf252","cf252","cf253","ru106","pm147"], + "wgcf_249" : ["cf250","cf251","cf252","cf253","ru106","pm147"], + "ipcf_249" : ["cf250","cf251","cf252","cf253","ru106","pm147"], + "mecf_251" : ["cf252","cf252","cf252","cf253","ru106","eu155"], + "vhecf_251" : ["cf252","cf252","cf252","cf253","ru106","eu155"], + "xecf_251" : ["cf252","cf252","cf252","cf253","ru106","eu155"], + "secf_251" : ["cf252","cf252","cf253","es254","ru106","eu155"], + "uecf_251" : ["cf252","cf252","cf253","es254","ru106","eu155"], + "wgcf_251" : ["cf252","cf252","cf253","cf254","ru106","eu155"], + "ipcf_251" : ["cf252","cf252","cf253","cf254","ru106","eu155"], + "mecf_253" : ["cf252","cf252","es254","es255","cs137","pm147"], + "vhecf_253" : ["cf252","cf254","es254","es255","cs137","pm147"], + "xecf_253" : ["cf252","cf253","es254","es255","cs137","pm147"], + "secf_253" : ["cf252","cf253","es254","es255","cs137","pm147"], + "uecf_253" : ["cf253","es254","es255","es255","cs137","pm147"], + "wgcf_253" : ["cf254","es254","es255","es255","cs137","pm147"], + "ipcf_253" : ["cf254","es254","es254","es255","cs137","pm147"], + "mee_254" : ["es255","es255","es255","fm257","cs137","pm147"], + "vhee_254" : ["es255","es255","es255","fm257","cs137","pm147"], + "xee_254" : ["es255","es255","es255","fm257","cs137","pm147"], + "see_254" : ["es255","es255","es255","fm257","cs137","pm147"], + "uee_254" : ["es255","es255","fm257","fm257","cs137","pm147"], + "wge_254" : ["es255","es255","fm257","fm257","cs137","pm147"], + "ipe_254" : ["es255","es255","fm257","fm257","cs137","pm147"], +} as string[][string]; + +val repIsoCountFinder = { + "meu_233" : [4,1,3,1,2], + "vheu_233" : [2,2,3,1,2], + "xeu_233" : [1,1,2,2,4], + "seu_233" : [2,1,3,1,2], + "ueu_233" : [2,1,1,1,4], + "wgu_233" : [1,1,1,3,3], + "ipu_233" : [1,1,1,1,4], + "meu_235" : [3,2,3,1,2], + "vheu_235" : [2,1,3,2,2], + "xeu_235" : [2,1,1,2,4], + "seu_235" : [2,1,3,1,2], + "ueu_235" : [1,1,2,1,4], + "wgu_235" : [1,1,3,1,2], + "ipu_235" : [1,1,1,1,4], + "men_236" : [4,1,3,1,2], + "vhen_236" : [3,1,1,3,3], + "xen_236" : [3,1,1,1,4], + "sen_236" : [3,2,1,3,3], + "uen_236" : [1,2,1,1,4], + "wgn_236" : [1,3,1,1,1], + "ipn_236" : [1,1,1,1,4], + "mep_239" : [4,1,3,1,2], + "vhep_239" : [1,2,5,1,2], + "xep_239" : [1,1,3,1,4], + "sep_239" : [1,1,1,5,3], + "uep_239" : [1,1,1,2,4], + "wgp_239" : [1,1,1,3,3], + "ipp_239" : [1,1,1,1,4], + "mep_241" : [4,1,3,1,2], + "vhep_241" : [1,2,3,2,2], + "xep_241" : [1,2,1,2,4], + "sep_241" : [1,3,1,2,1], + "uep_241" : [1,1,1,2,4], + "wgp_241" : [1,1,1,3,3], + "ipp_241" : [1,1,1,1,4], + "mea_242" : [3,1,5,1,2], + "vhea_242" : [2,5,1,1,1], + "xea_242" : [2,1,2,1,4], + "sea_242" : [3,1,1,2,0], + "uea_242" : [1,1,1,2,4], + "wga_242" : [1,1,1,3,3], + "ipa_242" : [1,1,1,1,4], + "mecm_243" : [3,3,2,1,1], + "vhecm_243" : [1,5,2,1,1], + "xecm_243" : [1,2,2,1,4], + "secm_243" : [1,3,2,1,1], + "uecm_243" : [1,1,2,1,4], + "wgcm_243" : [1,1,3,1,2], + "ipcm_243" : [1,1,1,1,4], + "mecm_245" : [4,1,3,1,2], + "vhecm_245" : [5,1,2,1,0], + "xecm_245" : [2,1,2,1,4], + "secm_245" : [3,1,2,1,0], + "uecm_245" : [1,1,2,1,4], + "wgcm_245" : [1,1,3,1,2], + "ipcm_245" : [1,1,1,1,4], + "mecm_247" : [3,5,1,1,1], + "vhecm_247" : [3,3,1,1,1], + "xecm_247" : [3,1,1,1,4], + "secm_247" : [5,1,1,1,0], + "uecm_247" : [2,1,1,1,4], + "wgcm_247" : [3,1,1,1,0], + "ipcm_247" : [1,1,1,1,4], + "meb_248" : [3,1,5,1,2], + "vheb_248" : [1,1,2,5,3], + "xeb_248" : [1,1,2,2,4], + "seb_248" : [1,1,3,2,2], + "ueb_248" : [1,1,1,2,4], + "wgb_248" : [1,1,1,3,3], + "ipb_248" : [1,1,1,1,4], + "mecf_249" : [1,2,5,2,2], + "vhecf_249" : [1,2,3,2,2], + "xecf_249" : [1,2,2,1,4], + "secf_249" : [1,2,3,1,2], + "uecf_249" : [1,2,1,1,4], + "wgcf_249" : [1,1,3,1,2], + "ipcf_249" : [1,1,1,1,4], + "mecf_251" : [2,2,3,2,2], + "vhecf_251" : [2,1,3,2,2], + "xecf_251" : [1,1,1,3,4], + "secf_251" : [1,3,2,1,1], + "uecf_251" : [1,1,2,1,4], + "wgcf_251" : [1,3,1,1,1], + "ipcf_251" : [1,1,1,1,4], + "mecf_253" : [2,3,2,2,1], + "vhecf_253" : [2,1,1,5,3], + "xecf_253" : [1,1,2,2,4], + "secf_253" : [1,1,1,5,3], + "uecf_253" : [1,1,1,2,4], + "wgcf_253" : [1,3,1,1,1], + "ipcf_253" : [1,1,1,1,4], + "mee_254" : [2,2,1,3,3], + "vhee_254" : [1,1,3,3,2], + "xee_254" : [1,1,1,3,4], + "see_254" : [1,1,1,5,3], + "uee_254" : [1,1,1,2,4], + "wge_254" : [1,1,1,3,3], + "ipe_254" : [1,1,1,1,4] +} as int[][string]; + + + +val posEnr = [2,4,5,6,7,8,9] as int[]; +val posEnr2 = [2.0,4.0,5.0,6.0,7.0,8.0,9.0] as double[]; + +for j,isotopic in isos{ + for i,enri in posEnr{ + var fissProdChancer = [25,25] as int[]; + var fissProdDouble = [0.25,0.25] as double[]; + if(j>=7){ + fissProdChancer = [30,20] as int[]; + fissProdDouble = [0.30,0.20] as double[]; + } + + //fis/fert/pellet is [normal,carbide,oxide,nitride,za] + val fis = isoFinder[fisFertFinder[isos[j]][0]]; + val fert = isoFinder[fisFertFinder[isos[j]][1]]; + val rad = (posEnr2[i]*radFinder[fisFertFinder[isos[j]][0]]+(9.0-posEnr2[i])*radFinder[fisFertFinder[isos[j]][1]])/9.0; + + // reprocessing time + val affectedReprocessing = repIsoCountFinder[enrich[i]~isos[j]][4] as int; + var multipliers = [repIsoCountFinder[enrich[i]~isos[j]][0],repIsoCountFinder[enrich[i]~isos[j]][1],repIsoCountFinder[enrich[i]~isos[j]][2],repIsoCountFinder[enrich[i]~isos[j]][3]] as double[]; + if(affectedReprocessing!=4){ + multipliers[affectedReprocessing] = multipliers[affectedReprocessing]/2.0; + } + val drad = (multipliers[0]*radFinder[repIsoFinder[enrich[i]~isos[j]][0]]+multipliers[1]*radFinder[repIsoFinder[enrich[i]~isos[j]][1]]+multipliers[2]*radFinder[repIsoFinder[enrich[i]~isos[j]][2]]+multipliers[3]*radFinder[repIsoFinder[enrich[i]~isos[j]][3]]+fissProdDouble[0]*posEnr2[i]*radFinder[repIsoFinder[enrich[i]~isos[j]][4]]+fissProdDouble[1]*posEnr2[i]*radFinder[repIsoFinder[enrich[i]~isos[j]][5]])/9.0; + val burnrad = (rad+drad)/64.0; + + //prods is 4 actinides, 2 fission products as liquids + var intMultipliers = [16*repIsoCountFinder[enrich[i]~isos[j]][0],16*repIsoCountFinder[enrich[i]~isos[j]][1],16*repIsoCountFinder[enrich[i]~isos[j]][2],16*repIsoCountFinder[enrich[i]~isos[j]][3]] as int[]; + if(affectedReprocessing!=4){ + intMultipliers[affectedReprocessing] = intMultipliers[affectedReprocessing]/2; + } + val prods = [liquidFinder[repIsoFinder[enrich[i]~isos[j]][0]]*intMultipliers[0],liquidFinder[repIsoFinder[enrich[i]~isos[j]][1]]*intMultipliers[1],liquidFinder[repIsoFinder[enrich[i]~isos[j]][2]]*intMultipliers[2],liquidFinder[repIsoFinder[enrich[i]~isos[j]][3]]*intMultipliers[3],liquidFinder[repIsoFinder[enrich[i]~isos[j]][4]],liquidFinder[repIsoFinder[enrich[i]~isos[j]][5]]] as ILiquidStack[]; + //solidProd is 4 actinides, 2 fission products as items + intMultipliers = [repIsoCountFinder[enrich[i]~isos[j]][0],repIsoCountFinder[enrich[i]~isos[j]][1],repIsoCountFinder[enrich[i]~isos[j]][2],repIsoCountFinder[enrich[i]~isos[j]][3]] as int[]; + val sprod = [[isoFinder[repIsoFinder[enrich[i]~isos[j]][0]][1]*intMultipliers[0],isoFinder[repIsoFinder[enrich[i]~isos[j]][1]][1]*intMultipliers[1],isoFinder[repIsoFinder[enrich[i]~isos[j]][2]][1]*intMultipliers[2],isoFinder[repIsoFinder[enrich[i]~isos[j]][3]][1]*intMultipliers[3],isoFinder[repIsoFinder[enrich[i]~isos[j]][4]][1],isoFinder[repIsoFinder[enrich[i]~isos[j]][5]][1]], [isoFinder[repIsoFinder[enrich[i]~isos[j]][0]][2]*intMultipliers[0],isoFinder[repIsoFinder[enrich[i]~isos[j]][1]][2]*intMultipliers[1],isoFinder[repIsoFinder[enrich[i]~isos[j]][2]][2]*intMultipliers[2],isoFinder[repIsoFinder[enrich[i]~isos[j]][3]][2]*intMultipliers[3],isoFinder[repIsoFinder[enrich[i]~isos[j]][4]][2],isoFinder[repIsoFinder[enrich[i]~isos[j]][5]][2]], [isoFinder[repIsoFinder[enrich[i]~isos[j]][0]][3]*intMultipliers[0],isoFinder[repIsoFinder[enrich[i]~isos[j]][1]][3]*intMultipliers[1],isoFinder[repIsoFinder[enrich[i]~isos[j]][2]][3]*intMultipliers[2],isoFinder[repIsoFinder[enrich[i]~isos[j]][3]][3]*intMultipliers[3],isoFinder[repIsoFinder[enrich[i]~isos[j]][4]][3],isoFinder[repIsoFinder[enrich[i]~isos[j]][5]][3]], [isoFinder[repIsoFinder[enrich[i]~isos[j]][0]][4]*intMultipliers[0],isoFinder[repIsoFinder[enrich[i]~isos[j]][1]][4]*intMultipliers[1],isoFinder[repIsoFinder[enrich[i]~isos[j]][2]][4]*intMultipliers[2],isoFinder[repIsoFinder[enrich[i]~isos[j]][3]][4]*intMultipliers[3],isoFinder[repIsoFinder[enrich[i]~isos[j]][4]][4],isoFinder[repIsoFinder[enrich[i]~isos[j]][5]][4]]] as IIngredient[][]; + + var liqLife = fuelLives[j][1] as double; + liqLife = liqLife/144.0; + var selfPrimed = false; + if(j>=10 && i!=6 && j<=11){ + selfPrimed = true; + } + if(j==12){ + selfPrimed = true; + } + if(j==13 && i<5){ + selfPrimed = true; + } + //if(i==2||i==4||i==6){ + theBigCheese(fis, fert, [itemUtils.getItem("contenttweaker:"~enrich[i]~isos[j]),itemUtils.getItem("contenttweaker:"~enrich[i]~isos[j]~'_c'),itemUtils.getItem("contenttweaker:"~enrich[i]~isos[j]~'_ox'),itemUtils.getItem("contenttweaker:"~enrich[i]~isos[j]~'_ni'),itemUtils.getItem("contenttweaker:"~enrich[i]~isos[j]~'_za')], itemUtils.getItem("contenttweaker:"~enrich[i]~isos[j]~'_tr'), [itemUtils.getItem("contenttweaker:d_"~enrich[i]~isos[j]~'_tr'),itemUtils.getItem("contenttweaker:d_"~enrich[i]~isos[j]~'_ox'),itemUtils.getItem("contenttweaker:d_"~enrich[i]~isos[j]~'_ni'),itemUtils.getItem("contenttweaker:d_"~enrich[i]~isos[j]~'_za')], [itemUtils.getItem("contenttweaker:d_"~enrich[i]~isos[j]~'_tr'),itemUtils.getItem("contenttweaker:d_"~enrich[i]~isos[j]~'_ox'),itemUtils.getItem("contenttweaker:d_"~enrich[i]~isos[j]~'_ni'),itemUtils.getItem("contenttweaker:d_"~enrich[i]~isos[j]~'_za')], [[fuelLives[j][0],fuelHeats[j][0]*posEnr[i],criticalities[j][i][0]], [fuelLives[j][1],fuelHeats[j][1]*posEnr[i],criticalities[j][i][1]], [fuelLives[j][2],fuelHeats[j][2]*posEnr[i],criticalities[j][i][2]], [fuelLives[j][3],fuelHeats[j][3]*posEnr[i],criticalities[j][i][3]]], [enri,fissProdChancer[0],fissProdChancer[1], affectedReprocessing], [baseEff[j]+0.025*posEnr2[i],rad,burnrad,drad,liqLife,fuelDecayFactor[j]], array[j][i], prods, sprod, selfPrimed, oreDictStuff[j][i], secretStuff); + //} + } +} + +//dpellet is [tr, ox, ni, za] + +//fuelInts is [time, heat, criticality] for [ox, ni, za] +//integs is [enrichment, fisProd1 chance, fisProd2 chance, affected chance reprocessing ingredient] +//fuelDoubles is [efficiency, base radiation, burn radiation, depleted radiation, MSR time] diff --git a/scripts/nc_script_addons/MoarFuels/super_fuels_gen.zs b/scripts/nc_script_addons/MoarFuels/super_fuels_gen.zs new file mode 100644 index 0000000..6514fac --- /dev/null +++ b/scripts/nc_script_addons/MoarFuels/super_fuels_gen.zs @@ -0,0 +1,379 @@ +/* +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 +#loader contenttweaker +import mods.contenttweaker.CreativeTab; +import mods.contenttweaker.VanillaFactory; +import mods.contenttweaker.Item; +import mods.contenttweaker.Fluid; +import mods.contenttweaker.Color; +import mods.contenttweaker.Block; + + + +val zsTab = VanillaFactory.createCreativeTab("moar_fuels", ); +zsTab.register(); + + + +// isotopes generation +val IsoNames= [["californium53","californium53carbide","californium53oxide","californium53nitride","californium53zirconium"],["californium54","californium54carbide","californium54oxide","californium54nitride","californium54zirconium"],["einsteinium54","einsteinium54carbide","einsteinium54oxide","einsteinium54nitride","einsteinium54zirconium"],["einsteinium55","einsteinium55carbide","einsteinium55oxide","einsteinium55nitride","einsteinium55zirconium"],["fermium57","fermium57carbide","fermium57oxide","fermium57nitride","fermium57zirconium"]] as string[][]; +for i,array in IsoNames{ + for item in array{ + var temp = VanillaFactory.createItem(item); + temp.creativeTab = ; + temp.register(); + } +} + +// fuels generation +var FuelNames= ["californium_fuel","californium_fuel_carbide","californium_fuel_triso","californium_fuel_oxide","californium_fuel_nitride","californium_fuel_zirconium","einsteinium_fuel","einsteinium_fuel_carbide","einsteinium_fuel_triso","einsteinium_fuel_oxide","einsteinium_fuel_nitride","einsteinium_fuel_zirconium","fermium_fuel","fermium_fuel_carbide","fermium_fuel_triso","fermium_fuel_oxide","fermium_fuel_nitride","fermium_fuel_zirconium","hcalifornium_fuel","hcalifornium_fuel_carbide","hcalifornium_fuel_triso","hcalifornium_fuel_oxide","hcalifornium_fuel_nitride","hcalifornium_fuel_zirconium","heinsteinium_fuel","heinsteinium_fuel_carbide","heinsteinium_fuel_triso","heinsteinium_fuel_oxide","heinsteinium_fuel_nitride","heinsteinium_fuel_zirconium","rplutonium_fuel","rplutonium_fuel_carbide","rplutonium_fuel_triso","rplutonium_fuel_oxide","rplutonium_fuel_nitride","rplutonium_fuel_zirconium","ramericium_fuel","ramericium_fuel_carbide","ramericium_fuel_triso","ramericium_fuel_oxide","ramericium_fuel_nitride","ramericium_fuel_zirconium","rcalifornium_fuel","rcalifornium_fuel_carbide","rcalifornium_fuel_triso","rcalifornium_fuel_oxide","rcalifornium_fuel_nitride","rcalifornium_fuel_zirconium"] as string[]; +for item in FuelNames{ + var temp = VanillaFactory.createItem(item); + temp.creativeTab = ; + temp.register(); +} + +FuelNames=["dcalifornium_fuel_triso","dcalifornium_fuel_oxide","dcalifornium_fuel_nitride","dcalifornium_fuel_zirconium","deinsteinium_fuel_triso","deinsteinium_fuel_oxide","deinsteinium_fuel_nitride","deinsteinium_fuel_zirconium","dfermium_fuel_triso","dfermium_fuel_oxide","dfermium_fuel_nitride","dfermium_fuel_zirconium","dhcalifornium_fuel_triso","dhcalifornium_fuel_oxide","dhcalifornium_fuel_nitride","dhcalifornium_fuel_zirconium","dheinsteinium_fuel_triso","dheinsteinium_fuel_oxide","dheinsteinium_fuel_nitride","dheinsteinium_fuel_zirconium","drplutonium_fuel_triso","drplutonium_fuel_oxide","drplutonium_fuel_nitride","drplutonium_fuel_zirconium","dramericium_fuel_triso","dramericium_fuel_oxide","dramericium_fuel_nitride","dramericium_fuel_zirconium","drcalifornium_fuel_triso","drcalifornium_fuel_oxide","drcalifornium_fuel_nitride","drcalifornium_fuel_zirconium","curium_244","curium_250"]; +for item in FuelNames{ + var temp = VanillaFactory.createItem(item); + temp.creativeTab = ; + temp.register(); +} + + +FuelNames=["cbc","cbcf"]; +val fuelEnds = ["_tr","_ox","_ni","_za"] as string[]; + +for iso in FuelNames{ + //items + var temp = VanillaFactory.createItem(iso); + temp.creativeTab = ; + temp.register(); + temp = VanillaFactory.createItem(iso~"_c"); + temp.creativeTab = ; + temp.register(); + for ender in fuelEnds{ + temp = VanillaFactory.createItem(iso~ender); + temp.creativeTab = ; + temp.register(); + temp = VanillaFactory.createItem("d_"~iso~ender); + temp.creativeTab = ; + temp.register(); + } +} + + +//liquid fuels & isotopes +var liquidsNamed= ["californium_253","californium_254","einsteinium_254","einsteinium_255","fermium_257","curium_244"] as string[]; +var colorsNamed= ["4A000B","4A000B","001A4F","001A4F","4F004A","800080","800080","AAAAAA","382B0A","4A000B"] as string[]; + +for i,name in liquidsNamed{ + var zsFluid = VanillaFactory.createFluid(name, Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); +} + +liquidsNamed = ["lecf_253","hecf_253","lee_254","hee_254","mix_257","cbc","cbcf","rep_238","rea_241","rec_250"] as string[]; +for i,name in liquidsNamed{ + var zsFluid = VanillaFactory.createFluid(name, Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + zsFluid = VanillaFactory.createFluid(name~"_fluoride", Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + zsFluid = VanillaFactory.createFluid(name~"_fluoride_flibe", Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + + zsFluid = VanillaFactory.createFluid("depleted_"~name, Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + zsFluid = VanillaFactory.createFluid("depleted_"~name~"_fluoride", Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + zsFluid = VanillaFactory.createFluid("depleted_"~name~"_fluoride_flibe", Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); +} + + + + +//RTG & CANDU stuff +val itemNames=["gemgermanium","si_ge","uranium_oxide","pre_candu","candu","thorium_oxide","dcandu","pre_aneel","aneel","daneel"] as string[]; +for item in itemNames{ + var temp = VanillaFactory.createItem(item); + temp.creativeTab = ; + temp.register(); +} +var rtgNames = ["rtg_sr","rtg_sr_done","rtg_ru","rtg_ru_done","rtg_cs","rtg_cs_done","rtg_pm","rtg_pm_done","rtg_eu","rtg_eu_done","rtg_po","rtg_po_done","rtg_ra","rtg_ra_done","rtg_pu","rtg_pu_done","rtg_am","rtg_am_done","rtg_cf","rtg_cf_done"] as string[]; +for item in rtgNames{ + var zsBlock = VanillaFactory.createBlock(item, ); + zsBlock.setBlockHardness(2.0); + zsBlock.setBlockResistance(5.0); + zsBlock.setToolClass("pickaxe"); + zsBlock.setToolLevel(0); + zsBlock.setBlockSoundType(); + zsBlock.creativeTab = ; + zsBlock.register(); +} + + + +// Crazy High Enrichment Stuff +val enrich= ["me","vhe","xe","se","ue","wg","ip"] as string[]; +//val enrich= ["xe","ue","ip"] as string[]; +val isos= ["u_233","u_235","n_236","p_239","p_241","a_242","cm_243","cm_245","cm_247","b_248","cf_249","cf_251","cf_253","e_254"] as string[]; + +colorsNamed= ["008000","008000","009999","AAAAAA","AAAAAA","382B0A","800080","800080","800080","86592D","4A000B","4A000B","4A000B","001A4F"] as string[]; + +for enr in enrich{ + for i,iso in isos{ + //items + var temp = VanillaFactory.createItem(enr~iso); + temp.creativeTab = ; + temp.register(); + temp = VanillaFactory.createItem(enr~iso~"_c"); + temp.creativeTab = ; + temp.register(); + for ender in fuelEnds{ + temp = VanillaFactory.createItem(enr~iso~ender); + temp.creativeTab = ; + temp.register(); + temp = VanillaFactory.createItem("d_"~enr~iso~ender); + temp.creativeTab = ; + temp.register(); + } + + //fluids + var zsFluid = VanillaFactory.createFluid(enr~iso, Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + zsFluid = VanillaFactory.createFluid(enr~iso~"_fluoride", Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + zsFluid = VanillaFactory.createFluid(enr~iso~"_fluoride_flibe", Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + + zsFluid = VanillaFactory.createFluid("depleted_"~enr~iso, Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + zsFluid = VanillaFactory.createFluid("depleted_"~enr~iso~"_fluoride", Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + zsFluid = VanillaFactory.createFluid("depleted_"~enr~iso~"_fluoride_flibe", Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + } +} + + + + + + + +//special QMD additions +if(loadedMods has "qmd"){ + val IsoNames2= [["thorium229","thorium229carbide","thorium229oxide","thorium229nitride","thorium229zirconium"],["mendelevium58","mendelevium58carbide","mendelevium58oxide","mendelevium58nitride","mendelevium58zirconium"],["flerovium98","flerovium98carbide","flerovium98oxide","flerovium98nitride","flerovium98zirconium"],["darmstadtium294","darmstadtium294carbide","darmstadtium294oxide","darmstadtium294nitride","darmstadtium294zirconium"]] as string[][]; + for i,array in IsoNames2{ + for item in array{ + var temp = VanillaFactory.createItem(item); + temp.creativeTab = ; + temp.register(); + } + } + FuelNames= ["protactinium_fuel","protactinium_fuel_carbide","protactinium_fuel_triso","protactinium_fuel_oxide","protactinium_fuel_nitride","protactinium_fuel_zirconium","hprotactinium_fuel","hprotactinium_fuel_carbide","hprotactinium_fuel_triso","hprotactinium_fuel_oxide","hprotactinium_fuel_nitride","hprotactinium_fuel_zirconium","mendelevium_fuel","mendelevium_fuel_carbide","mendelevium_fuel_triso","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","ubu_fuel","ubu_fuel_carbide","ubu_fuel_triso","ubu_fuel_oxide","ubu_fuel_nitride","ubu_fuel_zirconium"] as string[]; + for item in FuelNames{ + var temp = VanillaFactory.createItem(item); + temp.creativeTab = ; + temp.register(); + } + FuelNames= ["dprotactinium_fuel_triso","dprotactinium_fuel_oxide","dprotactinium_fuel_nitride","dprotactinium_fuel_zirconium","dhprotactinium_fuel_triso","dhprotactinium_fuel_oxide","dhprotactinium_fuel_nitride","dhprotactinium_fuel_zirconium","dmendelevium_fuel_triso","dmendelevium_fuel_oxide","dmendelevium_fuel_nitride","dmendelevium_fuel_zirconium","dflerovium_fuel_triso","dflerovium_fuel_oxide","dflerovium_fuel_nitride","dflerovium_fuel_zirconium","ddarmstadtium_fuel_triso","ddarmstadtium_fuel_oxide","ddarmstadtium_fuel_nitride","ddarmstadtium_fuel_zirconium","dubu_fuel_triso","dubu_fuel_oxide","dubu_fuel_nitride","dubu_fuel_zirconium","uranium_232"/*,"th_pellet_slow","th_pellet_fast","pa_pellet_slow","pa_pellet_fast"*/] as string[]; + for item in FuelNames{ + var temp = VanillaFactory.createItem(item); + temp.creativeTab = ; + temp.register(); + } + + + FuelNames=["pbu","luf"]; + + for iso in FuelNames{ + //items + var temp = VanillaFactory.createItem(iso); + temp.creativeTab = ; + temp.register(); + temp = VanillaFactory.createItem(iso~"_c"); + temp.creativeTab = ; + temp.register(); + for ender in fuelEnds{ + temp = VanillaFactory.createItem(iso~ender); + temp.creativeTab = ; + temp.register(); + temp = VanillaFactory.createItem("d_"~iso~ender); + temp.creativeTab = ; + temp.register(); + } + } + + var temp = VanillaFactory.createItem("mysterymix"); + temp.creativeTab = ; + temp.register(); + temp = VanillaFactory.createItem("actinium"); + temp.creativeTab = ; + temp.register(); + temp = VanillaFactory.createItem("purethorium229"); + temp.creativeTab = ; + temp.register(); + + +//liquid fuels & isotopes +var liquidsNamed= ["uranium_234"] as string[]; + +val colorsNamed= ["008000","ff8080","00b33c","8B4000","BBA100","E6E600","353233","423A3C"] as string[]; + +for i,name in liquidsNamed{ + var zsFluid = VanillaFactory.createFluid(name, Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); +} + + + +liquidsNamed = ["ubu","pbu","luf","mix_258","mix_298","mix_294","lam_231","eam_231"] as string[]; +for i,name in liquidsNamed{ + var zsFluid = VanillaFactory.createFluid(name, Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + zsFluid = VanillaFactory.createFluid(name~"_fluoride", Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + zsFluid = VanillaFactory.createFluid(name~"_fluoride_flibe", Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + + zsFluid = VanillaFactory.createFluid("depleted_"~name, Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + zsFluid = VanillaFactory.createFluid("depleted_"~name~"_fluoride", Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + zsFluid = VanillaFactory.createFluid("depleted_"~name~"_fluoride_flibe", Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); +} + +//RTG stuff +rtgNames = ["rtg_co","rtg_co_done","rtg_ac","rtg_ac_done"]; +for item in rtgNames{ + var zsBlock = VanillaFactory.createBlock(item, ); + zsBlock.setBlockHardness(2.0); + zsBlock.setBlockResistance(5.0); + zsBlock.setToolClass("pickaxe"); + zsBlock.setToolLevel(0); + zsBlock.setBlockSoundType(); + zsBlock.creativeTab = ; + zsBlock.register(); +} + +} + +//special Trinity additions + +if(loadedMods has "trinity"){ + val triNames = ["u233sphere","u235sphere","n237sphere","p239sphere","a242sphere","cm247sphere","b248sphere","cf249sphere","cf251sphere","du233sphere","du235sphere","dn237sphere","dp239sphere","da242sphere","dcm247sphere","db248sphere","dcf249sphere","dcf251sphere","plutonium236","pbp_fuel","pbp_fuel_carbide","pbp_fuel_triso","pbp_fuel_oxide","pbp_fuel_nitride","pbp_fuel_zirconium","dpbp_fuel_triso","dpbp_fuel_oxide","dpbp_fuel_nitride","dpbp_fuel_zirconium"] as string[]; + for item in triNames{ + var temp = VanillaFactory.createItem(item); + temp.creativeTab = ; + temp.register(); + } + var liquidsNamed = ["pbp"] as string[]; + var colorsNamed= ["cccccc"] as string[]; + for i,name in liquidsNamed{ + var zsFluid = VanillaFactory.createFluid(name, Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + zsFluid = VanillaFactory.createFluid(name~"_fluoride", Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + zsFluid = VanillaFactory.createFluid(name~"_fluoride_flibe", Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + + zsFluid = VanillaFactory.createFluid("depleted_"~name, Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + zsFluid = VanillaFactory.createFluid("depleted_"~name~"_fluoride", Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + zsFluid = VanillaFactory.createFluid("depleted_"~name~"_fluoride_flibe", Color.fromHex(colorsNamed[i])); + zsFluid.setDensity(4000); + zsFluid.setViscosity(1000); + zsFluid.setTemperature(400); + zsFluid.register(); + } + +} diff --git a/scripts/nc_script_addons/MoarFuels/super_fuels_rec.zs b/scripts/nc_script_addons/MoarFuels/super_fuels_rec.zs new file mode 100644 index 0000000..32a6542 --- /dev/null +++ b/scripts/nc_script_addons/MoarFuels/super_fuels_rec.zs @@ -0,0 +1,809 @@ +/* +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, ); diff --git a/scripts/nc_script_addons/MoarFuels/super_fuels_res.zs b/scripts/nc_script_addons/MoarFuels/super_fuels_res.zs new file mode 100644 index 0000000..fe3c8f7 --- /dev/null +++ b/scripts/nc_script_addons/MoarFuels/super_fuels_res.zs @@ -0,0 +1,70 @@ +/* +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.IOreDictEntry; +import mods.nuclearcraft.FuelReprocessor; + +val graphite = ; +val zirconium = ; + +/* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- LE Fuels -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ +var dFuels = [[,,,]] as IIngredient[][]; + +// reprocessing the depleted fuels +var dIso = [[[ * 2, * 2, * 2, * 2], [.amount(2),.amount(2),.amount(2), * 2], [.amount(2),.amount(2),.amount(2), * 2], [ * 2, * 2, * 2, * 2]] ] as IIngredient[][][]; + +var ru = mods.nuclearcraft.ChanceItemIngredient.create(, 30); +var eu = mods.nuclearcraft.ChanceItemIngredient.create(, 20); + +for i,array in dFuels{ + mods.nuclearcraft.FuelReprocessor.removeRecipeWithInput(array[0].amount(9)); + mods.nuclearcraft.FuelReprocessor.removeRecipeWithInput(array[1].amount(9)); + mods.nuclearcraft.FuelReprocessor.removeRecipeWithInput(array[2].amount(9)); + mods.nuclearcraft.FuelReprocessor.removeRecipeWithInput(array[3].amount(9)); + //triso + mods.nuclearcraft.FuelReprocessor.addRecipe(array[0].amount(9), dIso[i][0][0], dIso[i][0][1], ru, graphite * 3, dIso[i][0][2], dIso[i][0][3], eu, ); + //oxide + mods.nuclearcraft.FuelReprocessor.addRecipe(array[1].amount(9), dIso[i][1][0], dIso[i][1][1], ru, null, dIso[i][1][2], dIso[i][1][3], eu, null); + //nitride + mods.nuclearcraft.FuelReprocessor.addRecipe(array[2].amount(9), dIso[i][2][0], dIso[i][2][1], ru, null, dIso[i][2][2], dIso[i][2][3], eu, null); + //zirc + mods.nuclearcraft.FuelReprocessor.addRecipe(array[3].amount(9), dIso[i][3][0], dIso[i][3][1], ru, zirconium, dIso[i][3][2], dIso[i][3][3], eu, null); +} + + +/* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- HE Fuels -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ +dFuels = [[,,,]] as IIngredient[][]; + +// reprocessing the depleted fuels +dIso = [[[ * 2,,, * 3], [.amount(2),,, * 3], [.amount(2),,, * 3], [ * 2,,, * 3]] ]; + +ru = mods.nuclearcraft.ChanceItemIngredient.create(, 90); +eu = mods.nuclearcraft.ChanceItemIngredient.create(, 60); + +for i,array in dFuels{ + mods.nuclearcraft.FuelReprocessor.removeRecipeWithInput(array[0].amount(9)); + mods.nuclearcraft.FuelReprocessor.removeRecipeWithInput(array[1].amount(9)); + mods.nuclearcraft.FuelReprocessor.removeRecipeWithInput(array[2].amount(9)); + mods.nuclearcraft.FuelReprocessor.removeRecipeWithInput(array[3].amount(9)); + //triso + mods.nuclearcraft.FuelReprocessor.addRecipe(array[0].amount(9), dIso[i][0][0], dIso[i][0][1], ru, graphite * 4, dIso[i][0][2], dIso[i][0][3], eu, ); + //oxide + mods.nuclearcraft.FuelReprocessor.addRecipe(array[1].amount(9), dIso[i][1][0], dIso[i][1][1], ru, null, dIso[i][1][2], dIso[i][1][3], eu, null); + //nitride + mods.nuclearcraft.FuelReprocessor.addRecipe(array[2].amount(9), dIso[i][2][0], dIso[i][2][1], ru, null, dIso[i][2][2], dIso[i][2][3], eu, null); + //zirc + mods.nuclearcraft.FuelReprocessor.addRecipe(array[3].amount(9), dIso[i][3][0], dIso[i][3][1], ru, zirconium * 2, dIso[i][3][2], dIso[i][3][3], eu, null); +} diff --git a/scripts/nc_script_addons/MoarFuels/superstable_isle_gen.zs b/scripts/nc_script_addons/MoarFuels/superstable_isle_gen.zs new file mode 100644 index 0000000..07ac1d3 --- /dev/null +++ b/scripts/nc_script_addons/MoarFuels/superstable_isle_gen.zs @@ -0,0 +1,15 @@ +/* +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.) +*/ + + +#loader preinit +#modloaded qmd +mods.qmd.particle.addParticle("heffalumpMatter", "heffalump.png", 40383.21, 1.0, 0.0); \ No newline at end of file diff --git a/scripts/nc_script_addons/MoarFuels/superstable_isle_rec.zs b/scripts/nc_script_addons/MoarFuels/superstable_isle_rec.zs new file mode 100644 index 0000000..05eb61c --- /dev/null +++ b/scripts/nc_script_addons/MoarFuels/superstable_isle_rec.zs @@ -0,0 +1,574 @@ +/* +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.) +*/ + +#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(, ((*240000)^6000)~1.0, , null, , null, 8000, 0.1, -3000, 0.0001); +mods.qmd.target_chamber.addRecipe(, ((*1920000)^15000)~1.0, , null, *2, null, 25000, 0.01, -13000, 0.0001); +mods.qmd.target_chamber.addRecipe(, ((*3840000)^30000)~1.0, , *2, , null, 50000, 0.01, -33000, 0.0001); + +val stuff = ; +if(false){ //loadedMods has "thermalfoundation" + recipes.addShaped("mana",stuff,[[, , ],[, , ],[,,]]); + mods.qmd.target_chamber.addRecipe(stuff, ((*120000)^8000)~2.6, , null, , null, 20000, 1.0, 0, 0.0021); +}else{ + recipes.addShaped("mana",stuff,[[, , ],[, , ],[,,]]); + mods.qmd.target_chamber.addRecipe(stuff, ((*120000)^40000)~2.6, , , 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, *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); +} + +/* -=-=-=-=- MIX Fuels -=-=-=-=-*/ +val graphite = |; +val zirconium = |; +var fis = [[,,,,],[,,,,],[,,,,]] as IIngredient[][]; +var fer = [[,,,,],[,,,,],[,,,,]] 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 = [[,,,,],[,,,,],[,,,,]] as IItemStack[][]; +var fuelN2 = [,,] 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 = [,,] as IItemStack[]; +var dFuels = [[,,,],[,,,],[,,,]] as IIngredient[][]; +var dFuels2 = [[,,,],[,,,],[,,,]] 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(, 25); +var fisProd2 = mods.nuclearcraft.ChanceItemIngredient.create(, 25); + +var fluidFuelNames= [[,,,,,],[,,,,,],[,,,,,]] as ILiquidStack[][]; +var fluidProd= [[*32,*48,*32,*16,,],[*32,*16,*48,*32,,],[*16,*16,*48,*48,,]] 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 = [,,,,,] 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], 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 = [[[*2,*3,*2,], [*2,*3,*2,], [*2,*3,*2,], [*2,*3,*2,]], [[*2,,*3,*2],[*2,,*3,*2],[*2,,*3,*2],[*2,,*3,*2]],[[,,*3,*3],[,,*3,*3],[,,*3,*3],[,,*3,*3]]] as IIngredient[][][]; + +for i,array in dFuels{ + if(i==1){ + fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create(, 25); + } + //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+3].add(dFuels2[i][j]); + } +} + +/* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- PBU & LUF Time -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ +oreDict.ingotPBU; +.add(); +oreDict.ingotPBUAll; + +oreDict.ingotUranium232; +.add(); + +oreDict.ingotLUF; +.add(); +oreDict.ingotLUFAll; + + +//.add(); +//.add(); +//recipes.addShaped(*3,[[],[],[]]); +//recipes.addShaped(*3,[[,,]]); + +// MRR Compat +if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") { + mods.nuclearcraft.Radiation.setRadiationLevel(, 2.12E-02); + mods.nuclearcraft.DecayHastener.addRecipe(, , 1.0, 1.0, 2.12E-02); + + mods.nuclearcraft.FissionIrradiator.removeRecipeWithInput(); + mods.nuclearcraft.FissionIrradiator.addRecipe(, , 5833, 0.8, 0.0, 3.05E-05); + //mods.nuclearcraft.FissionIrradiator.addRecipe(, , 151000, 0.05, 0.0, 3.05E-05); + //mods.nuclearcraft.FissionIrradiator.addRecipe(, , 5833, 2.5, 0.0, 3.05E-05); + mods.nuclearcraft.FissionIrradiator.addRecipe(, , 99167, 8.0, 0.0, 1.33E-03); +}else{ + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.45E-02); + mods.nuclearcraft.DecayHastener.addRecipe(, , 1.0, 1.0, 1.45E-02); + + mods.nuclearcraft.FissionIrradiator.removeRecipeWithInput(); + mods.nuclearcraft.FissionIrradiator.addRecipe(, , 142222, 0.8, 0.0, 1.56E-04); + //mods.nuclearcraft.FissionIrradiator.addRecipe(, , 3840000, 0.05, 0.0, 1.56E-04); + //mods.nuclearcraft.FissionIrradiator.addRecipe(, , 142222, 2.5, 0.0, 1.56E-04); + mods.nuclearcraft.FissionIrradiator.addRecipe(, , 2417778, 8.0, 0.0, 8.35E-04); +} + +mods.nuclearcraft.Assembler.addRecipe(, null, null, null, ); +recipes.addShapeless(*9,[, , , , , , , , ]); + +// 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], |, 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]); + } + 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( * 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 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([,,,,], , [,,,], [,,,], [[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], [,,,,,], [*32,,*32,*48,,], [[*2,,*2,*3,,],[*2,,*2,*3,,],[*2,,*2,*3,,],[*2,,*2,*3,,]], false, [,], 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([,,,,], , [,,,], [,,,], [[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], [,,,,,], [*16,*16,*16,*16,,], [[null]], false, [,], false); + + +//external processing +fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create( * 9, 25); +fisProd2 = mods.nuclearcraft.ChanceItemIngredient.create( * 9, 25); + +//triso +mods.nuclearcraft.FuelReprocessor.addRecipe( * 9, , , fisProd1, *8, , , fisProd2, ); +//oxide +mods.nuclearcraft.FuelReprocessor.addRecipe( * 9, , , fisProd1, null, , , fisProd2, null); +//nitride +mods.nuclearcraft.FuelReprocessor.addRecipe( * 9, , , fisProd1, null, , , fisProd2, null); +//zirc +mods.nuclearcraft.FuelReprocessor.addRecipe( * 9, , , fisProd1, *6, , , fisProd2, null); + +fisProd1 = mods.nuclearcraft.ChanceFluidIngredient.create(*144, 25, 16); +fisProd2 = mods.nuclearcraft.ChanceFluidIngredient.create(*144, 25, 16); +mods.nuclearcraft.Centrifuge.removeRecipeWithInput(*144); +mods.nuclearcraft.Centrifuge.addRecipe(*144, *16,*16,fisProd1,*16,*16,fisProd2); + +/* -=-=-=-=- UBU & Pa-231 Based Fuels -=-=-=-=-*/ +val paFuels = [[,,,,],[,,,,],[,,,,]] as IItemStack[][]; +val dpaFuels = [[,,,],[,,,],[,,,]] as IIngredient[][]; +val dpaFuels2 = [[,,,],[,,,],[,,,]] 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 = [,,] as IItemStack[]; +fuelN2 = [,,] as IItemStack[]; + +fluidFuelNames= [[,,,,,],[,,,,,],[,,,,,]] as ILiquidStack[][]; +fluidProd= [[*64,*16,*16,*32,,],[*32,*32,*32,*16,,],[*32,*16,*32,*48,,]] 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(, *8, null, null, paFuels[0][0]*9); +mods.nuclearcraft.Assembler.addRecipe(*2, paFuels[0][0]*6, null, null, paFuels[1][0]*8); + +oreDict.ingotUBU; +.add(); +mods.nuclearcraft.FissionIrradiator.removeRecipeWithInput(); +mods.nuclearcraft.FissionIrradiator.addRecipe(, , 106667, 0.0, 0.0, 4.07E-06); +mods.nuclearcraft.FissionIrradiator.addRecipe(, , 1813333, 0.0, 0.0, 1.42E-09); + +oreDictList = ["ingotLAM231All","ingotEAM231All","ingotUBUAll","ingotDepletedLAM231All","ingotDepletedEAM231All","ingotDepletedUBUAll"] as string[]; +for entry in oreDictList { + oreDict.entry; +} +realOreDictList = [,,,,,] 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], *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], ); + //pebbles + mods.nuclearcraft.Assembler.addRecipe(array[1]*9, , , , 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(, 30); +fisProd2 = mods.nuclearcraft.ChanceItemIngredient.create(, 20); + +//reprocessing +//triso +mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[0][0] * 9, * 4, , fisProd1, .amount(4), , *2, fisProd2, ); +//oxide +mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[0][1] * 9, * 4, , fisProd1, null, , *2, fisProd2, null); +//nitride +mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[0][2] * 9, * 4, , fisProd1, null, , *2, fisProd2, null); +//zirc +mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[0][3] * 9, * 4, , fisProd1, * 2, , *2, fisProd2, null); + +fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create(, 90); +fisProd2 = mods.nuclearcraft.ChanceItemIngredient.create(, 60); + +//triso +mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[1][0] * 9, *2, *2, fisProd1, .amount(6), *2, , fisProd2, ); +//oxide +mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[1][1] * 9, *2, *2, fisProd1, null, *2, , fisProd2, null); +//nitride +mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[1][2] * 9, *2, *2, fisProd1, null, *2, , fisProd2, null); +//zirc +mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[1][3] * 9, *2, *2, fisProd1, * 4, *2, , fisProd2, null); + +fisProd1 = mods.nuclearcraft.ChanceItemIngredient.create(, 25); +fisProd2 = mods.nuclearcraft.ChanceItemIngredient.create(, 25); + +//reprocessing +//triso +mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[2][0] * 9, * 2, , fisProd1, .amount(3), * 2, *3, fisProd2, ); +//oxide +mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[2][1] * 9, * 2, , fisProd1, null, * 2, *3, fisProd2, null); +//nitride +mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[2][2] * 9, * 2, , fisProd1, null, * 2, *3, fisProd2, null); +//zirc +mods.nuclearcraft.FuelReprocessor.addRecipe(dpaFuels[2][3] * 9, * 2, , fisProd1, , * 2, *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= [[,,,,],[,,,,],[,,,,],[,,,,]] as IIngredient[][]; +val qIsoNames2= [[,,,,],[,,,,],[,,,,],[,,,,]] as IItemStack[][]; +val qisoN2 = [,,,] as IItemStack[]; + +val qdecays = [,,,,] 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 = [,,,] 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], *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(qisoN2[i], array[3]); + furnace.addRecipe(qisoN2[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(qIsoNames2[i][j]); + if (i==1){ + mods.nuclearcraft.DecayHastener.addRecipe(item, qdecays[j],1.0,1.0,decayRad[i]); + } + } +} +var uran = ; +mods.nuclearcraft.DecayHastener.removeRecipeWithInput(uran); +uran = ||; +mods.nuclearcraft.DecayHastener.addRecipe(uran, ,1.0,1.0,1.42e-9); + + +// Stuff for Actinium-227 & Thorium-229 +oreDict.dustActinium227; +.add(); +mods.nuclearcraft.FissionIrradiator.addRecipe(, , 1563000, 0.0, 0.0, 0.0); +mods.nuclearcraft.DecayHastener.addRecipe(, ,1.0,1.0,4.59E-02); +mods.nuclearcraft.Radiation.setRadiationLevel(, 4.59E-02); + +oreDict.ingotThorium229Pure; +.add(); +mods.nuclearcraft.Manufactory.addRecipe(, ); +mods.nuclearcraft.Radiation.setRadiationLevel(, 1.26E-04); +mods.nuclearcraft.FissionIrradiator.addRecipe(, , 201000, 0.0, 0.0, 0.0); +mods.nuclearcraft.DecayHastener.addRecipe(|||, ,1.0,1.0,decayRad[0]); +//enhancements +mods.nuclearcraft.AlloyFurnace.addRecipe(*64, , *64); +mods.nuclearcraft.AlloyFurnace.addRecipe(*8, , *8); + + +// U-234 melting time +mods.nuclearcraft.Melter.addRecipe(, *144); +mods.nuclearcraft.IngotFormer.addRecipe(*144, ); + + +//Special Thorium Pellet Stuff +if (oreDict has "QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames") { + //.add(); + //.add(); + //recipes.addShaped(*3,[[],[],[]]); + //recipes.addShaped(*3,[[,,]]); + + mods.nuclearcraft.FissionIrradiator.addRecipe(, , 1185000, 7.5, 0.0, 3.30E-04); + //mods.nuclearcraft.FissionIrradiator.addRecipe(, , 1185000, 7.5, 0.0, 3.30E-04); + //mods.nuclearcraft.FissionIrradiator.addRecipe(, , 1198000, 0.1, 0.0, 3.30E-04); +}else{ + //mods.jei.JEI.hide(); + //mods.jei.JEI.hide(); +} + + +/* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Improved RTGs -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ +val radioIso = [,] as IIngredient[]; +val decayIso = [,] as IIngredient[]; +val red = ; +val sige = ; +var input = [,] as IIngredient[]; +var output = [,] 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), *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), *4, null, null, red*2, sige*2, null, null); + mods.nuclearcraft.Radiation.setRadiationLevel(item, rtgstats[i][2]); +} + +/* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Clock Fun -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ +val nClock = .withTag({display: {Name: "Nuclear Clock", Lore: ["Somehow hundreds of times even more accurate than an atomic clock!"]}}); +recipes.addShaped(nClock,[[null, , null],[, , ],[null,,null]]); diff --git a/scripts/nc_script_addons/MoarFuels/wg_cores.zs b/scripts/nc_script_addons/MoarFuels/wg_cores.zs new file mode 100644 index 0000000..372d11a --- /dev/null +++ b/scripts/nc_script_addons/MoarFuels/wg_cores.zs @@ -0,0 +1,24 @@ +/* +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.) +*/ + +#modloaded trinity + +import crafttweaker.item.IIngredient; +import crafttweaker.item.IItemStack; + +/* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Subcritical Spheres -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ +val pitList = [,,,,,,,] as IItemStack[]; +val fis = [,,,,,,,] as IIngredient[]; +val poSource = ; + +for i,pit in pitList { + recipes.addShaped(pit,[[fis[i], fis[i], fis[i]], [fis[i], poSource, fis[i]], [fis[i], fis[i], fis[i]]]); +} \ No newline at end of file diff --git a/scripts/nc_script_addons/MoarRealisticRadiation/rad_changes.zs b/scripts/nc_script_addons/MoarRealisticRadiation/rad_changes.zs new file mode 100644 index 0000000..1ca3423 --- /dev/null +++ b/scripts/nc_script_addons/MoarRealisticRadiation/rad_changes.zs @@ -0,0 +1,140 @@ +/* +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.) +*/ + +#loader preinit + + +//isotopes +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Tritium",4.06e-2); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Strontium90",1.74e-2); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Ruthenium106",4.88e-1); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Caesium137",4.81e-2); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Promethium147",1.91e-1); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Europium155",2.85e-1); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Bismuth",4.03e-23); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Polonium",5.38e-5); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Radium",2.51e-3); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Thorium",2.70e-10); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("TBP",2.41e-01); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Protactinium233",4.35); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Uranium233",1.78e-5); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Uranium",2.20e-9); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Uranium235",1.07e-8); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Uranium238",1.25e-9); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Neptunium236",1.62e-5); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Neptunium237",1.27e-6); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Plutonium238",3.30e-3); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Plutonium239",5.35e-5); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Plutonium241",3.50e-2); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Plutonium242",6.25e-7); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Americium241",2.34e-3); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Americium242",6.86e-3); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Americium243",3.02e-4); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Curium243",4.00e-2); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Curium245",1.76e-4); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Curium246",4.16e-5); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Curium247",2.43e-7); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Berkelium247",1.42e-3); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Berkelium248",8.89e-2); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Californium249",2.92e-3); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Californium250",1.78e-2); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Californium251",1.73e-3); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Californium252",1.04); + +if(loadedMods has "qmd"){ +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Beryllium7",5.20e-1); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Sodium22",1.17); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Calcium48",4.45e-20); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Cobalt60",4.74e-1); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Iridium192",3.46); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Protactinium231",1.56e-4); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Uranium234",1.75e-5); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Copernicium291",8.57e-2); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("MIX291",9.52E-03); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedMIX291",3.18E-02); +} + +if(loadedMods has "trinity"){ +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("Gold198",7.64E+00); +} + +//fuels +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("TBU",9.90e-7); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("LEU233",1.98e-6); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("HEU233",5.94e-6); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("LEU235",2.31e-9); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("HEU235",4.41e-9); + +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("LEN236",2.93e-6); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("HEN236",6.25e-6); + +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("LEP239",6.49e-6); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("HEP239",1.82e-5); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("LEP241",3.89e-3); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("HEP241",1.17e-2); + +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("MIX239",5.94e-6); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("MIX241",3.89e-3); + +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("LEA242",1.03e-3); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("HEA242",2.49e-3); + +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("LECm243",4.48e-3); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("HECm243",1.34e-2); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("LECm245",5.66e-5); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("HECm245",8.64e-5); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("LECm247",3.70e-5); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("HECm247",2.78e-5); + +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("LEB248",1.11e-2); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("HEB248",3.06e-2); + +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("LECf249",9.24e-1); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("HECf249",6.94e-1); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("LECf251",9.24e-1); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("HECf251",6.93e-1); + + +//depleted fuels +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedTBU",1.82e-3); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedLEU233",5.74e-3); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedHEU233",5.49e-3); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedLEU235",1.38e-3); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedHEU235",4.04e-3); + +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedLEN236",5.22e-3); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedHEN236",4.38e-3); + +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedLEP239",6.58e-3); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedHEP239",2.66e-2); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedLEP241",5.97e-3); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedHEP241",1.85e-2); + +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedMIX239",9.70e-3); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedMIX241",9.70e-3); + +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedLEA242",1.53e-2); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedHEA242",2.06e-2); + +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedLECm243",1.55e-2); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedHECm243",2.61e-2); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedLECm245",6.98e-3); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedHECm245",1.96e-2); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedLECm247",1.67e-2); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedHECm247",3.00e-2); + +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedLEB248",1.47e-1); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedHEB248",4.18e-1); + +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedLECf249",9.44e-1); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedHECf249",7.56e-1); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedLECf251",9.46e-1); +mods.nuclearcraft.Radiation.setMaterialRadiationLevel("DepletedHECf251",8.76e-1); \ No newline at end of file diff --git a/scripts/nc_script_addons/MoarRealisticRadiation/rad_nco.zs b/scripts/nc_script_addons/MoarRealisticRadiation/rad_nco.zs new file mode 100644 index 0000000..7e5cca6 --- /dev/null +++ b/scripts/nc_script_addons/MoarRealisticRadiation/rad_nco.zs @@ -0,0 +1,127 @@ +/* +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.) +*/ + +import mods.nuclearcraft.FissionIrradiator; + +//neutron sources +mods.nuclearcraft.Radiation.setRadiationLevel(, 2.41E-04); +mods.nuclearcraft.Radiation.setRadiationLevel(, 4.58E-06); +mods.nuclearcraft.Radiation.setRadiationLevel(, 1.18E-01); + +//rtgs +mods.nuclearcraft.Radiation.setRadiationLevel(, 9.62E-11); +mods.nuclearcraft.Radiation.setRadiationLevel(, 5.51E-04); +mods.nuclearcraft.Radiation.setRadiationLevel(, 3.90E-04); +mods.nuclearcraft.Radiation.setRadiationLevel(, 2.23E-03); + + +//irradiator changes +mods.nuclearcraft.FissionIrradiator.removeRecipeWithInput(); +mods.nuclearcraft.FissionIrradiator.addRecipe(, , 3220000, 0.0, 0.50, 253.0e-24); + +if(loadedMods has "trinity"){ + mods.nuclearcraft.FissionIrradiator.removeRecipeWithOutput(); + mods.nuclearcraft.FissionIrradiator.addRecipe(|, , 214000, 0.0, 0.0, 0.0); + mods.nuclearcraft.FissionIrradiator.addRecipe(, , 3099000, 0.0, 0.0, 4.81E-02); + + mods.nuclearcraft.Radiation.setRadiationLevel(, 7.64E+00); + mods.nuclearcraft.Radiation.setRadiationLevel(, 7.64E+00); +} + +//irradiator additions +mods.nuclearcraft.FissionIrradiator.addRecipe(, , 867342, 0.25, 0.0, 1.25E-09); +mods.nuclearcraft.FissionIrradiator.addRecipe(, *9, 7806078, 2.25, 0.0, 11.25E-09); + +mods.nuclearcraft.FissionIrradiator.addRecipe(, , 6938658, 0.25, 0.0, 5.94E-06); +mods.nuclearcraft.FissionIrradiator.addRecipe(.withTag({FluidName: "hydrogen", Amount: 1000}), .withTag({FluidName: "deuterium", Amount: 1000}), 3086000, 0.0, 0.0, 0.0); + +// MoarFuels Integration +if (oreDict has "ingotEinsteinium255All") { + mods.nuclearcraft.Radiation.setRadiationLevel(, 3.49); + mods.nuclearcraft.Radiation.setRadiationLevel(, 9.07); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.52); + mods.nuclearcraft.Radiation.setRadiationLevel(, 2.63); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.46); + + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.31); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.86); + mods.nuclearcraft.Radiation.setRadiationLevel(, 2.51); + mods.nuclearcraft.Radiation.setRadiationLevel(, 2.26); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.61); + + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.39); + mods.nuclearcraft.Radiation.setRadiationLevel(, 2.30); + mods.nuclearcraft.Radiation.setRadiationLevel(, 2.09); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.67); + mods.nuclearcraft.Radiation.setRadiationLevel(, 5.55e-1); + mods.nuclearcraft.Radiation.setRadiationLevel(, 3.79E-04); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.99E-03); + mods.nuclearcraft.Radiation.setRadiationLevel(, 6.95E-01); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.89E-02); + mods.nuclearcraft.Radiation.setRadiationLevel(, 8.74E-04); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.03E+00); + mods.nuclearcraft.Radiation.setRadiationLevel(, 2.20e-9); + mods.nuclearcraft.Radiation.setRadiationLevel(, 2.20e-9); + mods.nuclearcraft.Radiation.setRadiationLevel(, 2.11E-03); + + if(loadedMods has "qmd"){ + mods.nuclearcraft.Radiation.setRadiationLevel(, 4.17e-1); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.16e-6); + mods.nuclearcraft.Radiation.setRadiationLevel(, 3.20e-4); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.01e-2); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.32e-2); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.41e-2); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.65E-05); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.34E-03); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.82E-05); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.65E-03); + mods.nuclearcraft.Radiation.setRadiationLevel(, 5.27E-05); + mods.nuclearcraft.Radiation.setRadiationLevel(, 4.95E-03); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.27E-01); + mods.nuclearcraft.Radiation.setRadiationLevel(, 3.30E-04); + mods.nuclearcraft.Radiation.setRadiationLevel(, 3.30E-04); + mods.nuclearcraft.Radiation.setRadiationLevel(, 3.75E+00); + mods.nuclearcraft.Radiation.setRadiationLevel(, 2.39E-04); + mods.nuclearcraft.Radiation.setRadiationLevel(, 2.41E-07); + } + if(loadedMods has "trinity"){ + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.11E-03); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.66E-02); + mods.nuclearcraft.Radiation.setRadiationLevel(, 6.16E-03); + mods.nuclearcraft.FissionIrradiator.removeRecipeWithInput(); + mods.nuclearcraft.FissionIrradiator.addRecipe(, , 75692, 0.0, 0.0, 1.11E-03); + + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.58E-05); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.46E-02); + mods.nuclearcraft.Radiation.setRadiationLevel(, 9.51E-09); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.07E-02); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.13E-06); + mods.nuclearcraft.Radiation.setRadiationLevel(, 2.02E-03); + mods.nuclearcraft.Radiation.setRadiationLevel(, 4.76E-05); + mods.nuclearcraft.Radiation.setRadiationLevel(, 5.10E-02); + mods.nuclearcraft.Radiation.setRadiationLevel(, 2.68E-04); + mods.nuclearcraft.Radiation.setRadiationLevel(, 4.47E-02); + mods.nuclearcraft.Radiation.setRadiationLevel(, 2.16E-07); + mods.nuclearcraft.Radiation.setRadiationLevel(, 5.63E-02); + mods.nuclearcraft.Radiation.setRadiationLevel(, 7.90E-02); + mods.nuclearcraft.Radiation.setRadiationLevel(, 2.90E-01); + mods.nuclearcraft.Radiation.setRadiationLevel(, 2.60E-03); + mods.nuclearcraft.Radiation.setRadiationLevel(, 6.69E-01); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.54E-03); + mods.nuclearcraft.Radiation.setRadiationLevel(, 1.75E+00); + } +} + +// MoarReactorFunctionality Integration +if (oreDict has "puBeModerator") { + mods.nuclearcraft.Radiation.setRadiationLevel(, 3.97E-03); + mods.nuclearcraft.Radiation.setRadiationLevel(, 2.60E-03); +} \ No newline at end of file diff --git a/scripts/nc_script_addons/MoarRealisticRadiation/rad_preload.zs b/scripts/nc_script_addons/MoarRealisticRadiation/rad_preload.zs new file mode 100644 index 0000000..d94690a --- /dev/null +++ b/scripts/nc_script_addons/MoarRealisticRadiation/rad_preload.zs @@ -0,0 +1,18 @@ +/* +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.) +*/ + +#priority 10 + +import crafttweaker.oredict.IOreDict; +import crafttweaker.oredict.IOreDictEntry; + +oreDict.QuantumTraverseIHaveHadEnoughOfYourSpaghettiCodeAndAbsurdNames; +.add(); \ No newline at end of file diff --git a/scripts/nc_script_addons/MoarRealisticRadiation/rad_qmd.zs b/scripts/nc_script_addons/MoarRealisticRadiation/rad_qmd.zs new file mode 100644 index 0000000..208c2db --- /dev/null +++ b/scripts/nc_script_addons/MoarRealisticRadiation/rad_qmd.zs @@ -0,0 +1,42 @@ +/* +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.) +*/ + +#modloaded qmd + +import mods.nuclearcraft.FissionIrradiator; + +mods.nuclearcraft.Radiation.setRadiationLevel(, 5.20e-1); +mods.nuclearcraft.Radiation.setRadiationLevel(, 1.17); +mods.nuclearcraft.Radiation.setRadiationLevel(, 4.45e-20); +mods.nuclearcraft.Radiation.setRadiationLevel(, 4.74e-1); +mods.nuclearcraft.Radiation.setRadiationLevel(, 3.46); +mods.nuclearcraft.Radiation.setRadiationLevel(, 1.56e-4); +mods.nuclearcraft.Radiation.setRadiationLevel(, 1.75e-5); +mods.nuclearcraft.Radiation.setRadiationLevel(, 8.57e-2); + +//irradiator stuff +mods.nuclearcraft.FissionIrradiator.removeRecipeWithInput(); +mods.nuclearcraft.FissionIrradiator.addRecipe(, , 571000, 0.0, 0.0, 0.0); + +mods.nuclearcraft.FissionIrradiator.addRecipe(, , 545000, 0.0, 0.0, 4.35E+00); + + +if (!(oreDict has "ingotUBU")) { + mods.nuclearcraft.FissionIrradiator.removeRecipeWithInput(); + mods.nuclearcraft.FissionIrradiator.addRecipe(, , 215000, 0.0, 0.0, 1.75E-05); + mods.nuclearcraft.FissionIrradiator.removeRecipeWithInput(); + mods.nuclearcraft.FissionIrradiator.addRecipe(, , 151000, 0.0, 0.0, 1.56E-04); +} else { + mods.nuclearcraft.FissionIrradiator.removeRecipeWithInput(); + mods.nuclearcraft.FissionIrradiator.addRecipe(, , 11944, 0.0, 0.0, 1.75E-05); + mods.nuclearcraft.FissionIrradiator.removeRecipeWithInput(); + mods.nuclearcraft.FissionIrradiator.addRecipe(, , 203056, 0.0, 0.0, 1.65E-05); +} \ No newline at end of file