aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java')
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java256
1 files changed, 172 insertions, 84 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java
index 90901e6847..7315acd7d2 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java
@@ -1,5 +1,6 @@
package gtPlusPlus.xmod.gregtech.loaders.recipe;
+import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Materials;
import gtPlusPlus.core.item.ModItems;
import gtPlusPlus.core.item.chemistry.NuclearChem;
@@ -19,7 +20,7 @@ public class RecipeLoader_NuclearFuelProcessing {
public static void generate() {
// Create Fuels
-
+
final FluidStack aLithiumFluoride = FLUORIDES.LITHIUM_FLUORIDE.getFluidStack(100);
final FluidStack aBerylliumFluoride = FLUORIDES.BERYLLIUM_FLUORIDE.getFluidStack(100);
final FluidStack aThoriumFluoride = FLUORIDES.THORIUM_TETRAFLUORIDE.getFluidStack(100);
@@ -42,7 +43,7 @@ public class RecipeLoader_NuclearFuelProcessing {
90 * 60 * 20, // Duration
MaterialUtils.getVoltageForTier(5)
);
-
+
// 7LiF - BeF2 - ZrF4 - UF4 - 650C
CORE.RA.addFissionFuel(
FluidUtils.getFluidStack(aLithiumFluoride, 650),
@@ -68,8 +69,8 @@ public class RecipeLoader_NuclearFuelProcessing {
150 * 60 * 20, // Duration
MaterialUtils.getVoltageForTier(5)
);
-
-
+
+
// Reprocess Fuels
final FluidStack aBurntLiFBeF2ZrF4U235 = new FluidStack(NuclearChem.Burnt_LiFBeF2ZrF4U235, 17);
@@ -77,78 +78,11 @@ public class RecipeLoader_NuclearFuelProcessing {
final FluidStack aBurntLiFBeF2ThF4UF4 = new FluidStack(NuclearChem.Burnt_LiFBeF2ThF4UF4, 17);
final FluidStack aHelium = Materials.Helium.getGas(1000);
final FluidStack aFluorine = Materials.Fluorine.getGas(1000);
-
-
- // Reactor Core step 0 - Process Burnt Salt
-
-
- // Tier 1 Fuel - Gives back FLIBE and breeds U233
- CORE.RA.addReactorProcessingUnitRecipe(
- CI.getNumberedAdvancedCircuit(1),
- CI.emptyCells(2),
- new FluidStack(NuclearChem.Burnt_LiFBeF2ZrF4U235, 4000),
- new ItemStack[] {
- FLUORIDES.LITHIUM_FLUORIDE.getCell(1),
- ELEMENT.getInstance().URANIUM233.getCell(1)
- },
- new int[] {10000, 10000},
- NUCLIDE.LiFBeF2.getFluidStack(2000),
- 20 * 60 * 60,
- MaterialUtils.getVoltageForTier(3));
-
- // Tier 2 Fuel
- CORE.RA.addFissionFuel(
- new FluidStack(NuclearChem.Burnt_LiFBeF2ZrF4UF4, 3000),
- null, null, null, null, null, null, null, null, // Extra 5 inputs
- FLUORIDES.ZIRCONIUM_TETRAFLUORIDE.getFluidStack(1000),
- NUCLIDE.LiFBeF2UF4.getFluidStack(2000),
- 60 * 60 * 20, // Duration
- MaterialUtils.getVoltageForTier(4)
- );
-
- // Tier 3 Fuel
- CORE.RA.addFissionFuel(
- new FluidStack(NuclearChem.Burnt_LiFBeF2ThF4UF4, 3000),
- null, null, null, null, null, null, null, null, // Extra 5 inputs
- FLUORIDES.THORIUM_TETRAFLUORIDE.getFluidStack(1000),
- NUCLIDE.LiFBeF2UF4.getFluidStack(2000),
- 120 * 60 * 20, // Duration
- MaterialUtils.getVoltageForTier(4)
- );
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- // Reactor Blanket step 0 - Splitting
- /* CORE.RA.addReactorProcessingUnitRecipe(
- CI.getNumberedAdvancedCircuit(6),
- CI.emptyCells(1),
- new FluidStack(ModItems.fluidFLiBeSaltBurnt, 3000),
- new ItemStack[] {
- FLUORIDES.LITHIUM_FLUORIDE.getCell(1)
- },
- new int[] {10000},
- NUCLIDE.LiFBeF2.getFluidStack(2000),
- 20 * 60 * 60,
- MaterialUtils.getVoltageForTier(3));*/
-
-
+
+
// Reactor Blanket step 1 - Fluorination
CORE.RA.addReactorProcessingUnitRecipe(
CI.getNumberedAdvancedCircuit(7),
@@ -163,7 +97,7 @@ public class RecipeLoader_NuclearFuelProcessing {
ItemUtils.getSimpleStack(ModItems.dustProtactinium233),
ItemUtils.getSimpleStack(ModItems.dustProtactinium233),
ItemUtils.getSimpleStack(ModItems.dustProtactinium233)
- },
+ },
new int[] {10000, 10000, 2000, 2000, 2000, 2000, 2000, 2000},
NUCLIDE.UF6F2.getFluidStack(10000),
20 * 60 * 5,
@@ -182,34 +116,188 @@ public class RecipeLoader_NuclearFuelProcessing {
ItemUtils.getSimpleStack(ModItems.dustProtactinium233),
ItemUtils.getSimpleStack(ModItems.dustProtactinium233),
ItemUtils.getSimpleStack(ModItems.dustProtactinium233)
- },
+ },
new int[] {10000, 10000, 10000, 2000, 2000, 2000, 2000, 2000, 2000},
NUCLIDE.UF6F2.getFluidStack(10000),
20 * 60 * 5,
MaterialUtils.getVoltageForTier(5));
-
+
// Reactor Blanket step 2 - Sorption + Cold Trap
CORE.RA.addColdTrapRecipe(
8,
- FLUORIDES.SODIUM_FLUORIDE.getCell(2),
+ FLUORIDES.SODIUM_FLUORIDE.getCell(4),
NUCLIDE.UF6F2.getFluidStack(3000),
new ItemStack[] {
ELEMENT.getInstance().FLUORINE.getCell(2),
+ FLUORIDES.URANIUM_HEXAFLUORIDE.getCell(2),
ELEMENT.getInstance().URANIUM233.getDust(1),
ELEMENT.getInstance().URANIUM233.getDust(1),
ELEMENT.getInstance().URANIUM233.getDust(1)
},
- new int[] {10000, 3000, 2000, 1000},
- FLUORIDES.URANIUM_HEXAFLUORIDE.getFluidStack(1000),
+ new int[] {10000, 10000, 3000, 2000, 1000},
+ FLUORIDES.SODIUM_FLUORIDE.getFluidStack(2000),
20 * 60 * 10,
- MaterialUtils.getVoltageForTier(3));
-
-
-
-
+ MaterialUtils.getVoltageForTier(3));
+
+
+
+
+ // Reactor Core step 0 - Process Burnt Salt
+ // Tier 1 Fuel - Gives back FLIBE and breeds U233
+ CORE.RA.addReactorProcessingUnitRecipe(
+ CI.getNumberedAdvancedCircuit(1),
+ CI.emptyCells(2),
+ new FluidStack(NuclearChem.Burnt_LiFBeF2ZrF4U235, 4000),
+ new ItemStack[] {
+ FLUORIDES.LITHIUM_FLUORIDE.getCell(1),
+ ELEMENT.getInstance().URANIUM233.getCell(1)
+ },
+ new int[] {10000, 10000},
+ NUCLIDE.LiFBeF2.getFluidStack(2000),
+ 20 * 60 * 60,
+ MaterialUtils.getVoltageForTier(3));
+
+
+ // LiBeF2UF4FP + F2 = LiFBeF2 & UF6F2FP
+ // Reactor Core step 1 - Process Burnt Salt
+ CORE.RA.addReactorProcessingUnitRecipe(
+ CI.getNumberedAdvancedCircuit(1),
+ ELEMENT.getInstance().FLUORINE.getCell(3),
+ NUCLIDE.LiBeF2UF4FP.getFluidStack(1000),
+ new ItemStack[] {
+ NUCLIDE.UF6F2FP.getCell(2)
+ },
+ new int[] {10000},
+ FluidUtils.getFluidStack(NuclearChem.Impure_LiFBeF2, 2000),
+ 20 * 60 * 60,
+ MaterialUtils.getVoltageForTier(3));
+
+ // Reactor Core step 2A - Sorption + Cold Trap
+ CORE.RA.addColdTrapRecipe(
+ 8,
+ FLUORIDES.SODIUM_FLUORIDE.getCell(3),
+ NUCLIDE.UF6F2FP.getFluidStack(2000),
+ new ItemStack[] {
+ ELEMENT.getInstance().FLUORINE.getCell(1),
+ FLUORIDES.URANIUM_HEXAFLUORIDE.getCell(2),
+ ELEMENT.getInstance().PHOSPHORUS.getDust(1),
+ ELEMENT.getInstance().PHOSPHORUS.getDust(1),
+ ELEMENT.getInstance().PHOSPHORUS.getDust(1),
+ ELEMENT.getInstance().PHOSPHORUS.getDust(1),
+ ELEMENT.getInstance().PHOSPHORUS.getDust(1),
+ ELEMENT.getInstance().PHOSPHORUS.getDust(1),
+ ELEMENT.getInstance().PHOSPHORUS.getDust(1)
+ },
+ new int[] {10000, 10000, 5000, 5000, 5000, 5000, 5000, 5000, 5000},
+ FLUORIDES.SODIUM_FLUORIDE.getFluidStack(2000),
+ 20 * 60 * 10,
+ MaterialUtils.getVoltageForTier(4));
+
+
+ // Reactor Core step 2B - Distillation
+ GT_Values.RA.addDistillationTowerRecipe(
+ FluidUtils.getFluidStack(NuclearChem.Impure_LiFBeF2, 1000),
+ new FluidStack[] {
+ NUCLIDE.LiFBeF2.getFluidStack(250)
+ },
+ null,
+ 120 * 60 * 20,
+ MaterialUtils.getVoltageForTier(3));
+
+
+ // UF6 -> UF4 reduction
+ // UF6 + LiFBeF2 + H2 -> LiFBeF2UF4 + HF
+ CORE.RA.addBlastRecipe(
+ new ItemStack[] {
+ FLUORIDES.URANIUM_HEXAFLUORIDE.getCell(1),
+ NUCLIDE.LiFBeF2.getCell(1)
+ },
+ new FluidStack[] {
+ ELEMENT.getInstance().HYDROGEN.getFluidStack(2000)
+ },
+ new ItemStack[] {
+ ItemUtils.getItemStackOfAmountFromOreDict("cellHydrofluoricAcid", 2),
+ CI.emptyCells(1)
+ },
+ new FluidStack[] {
+ NUCLIDE.LiFBeF2UF4.getFluidStack(3000)
+ },
+ 20 * 60 * 10,
+ MaterialUtils.getVoltageForTier(4),
+ 6500);
+
+
+
+
+ // LiFBeF2ZrF4U235 - We can't add both ZrF4 and U235 here, so best we leave this disabled.
+ /*CORE.RA.addReactorProcessingUnitRecipe(
+ CI.getNumberedAdvancedCircuit(8),
+ NUCLIDE.LiFBeF2UF4.getCell(9),
+ ELEMENT.getInstance().URANIUM235.getFluidStack(1000),
+ new ItemStack[] {
+ CI.emptyCells(9)
+ },
+ new int[] {10000},
+ NUCLIDE.LiFBeF2ZrF4U235.getFluidStack(10000),
+ 20 * 60 * 5,
+ MaterialUtils.getVoltageForTier(4));*/
+
+ // LiFBeF2ZrF4UF4
+ CORE.RA.addReactorProcessingUnitRecipe(
+ CI.getNumberedAdvancedCircuit(9),
+ NUCLIDE.LiFBeF2UF4.getCell(9),
+ FLUORIDES.ZIRCONIUM_TETRAFLUORIDE.getFluidStack(1000),
+ new ItemStack[] {
+ CI.emptyCells(9)
+ },
+ new int[] {10000},
+ NUCLIDE.LiFBeF2ZrF4UF4.getFluidStack(10000),
+ 20 * 60 * 5,
+ MaterialUtils.getVoltageForTier(5));
+
+ CORE.RA.addReactorProcessingUnitRecipe(
+ CI.getNumberedAdvancedCircuit(9),
+ FLUORIDES.ZIRCONIUM_TETRAFLUORIDE.getCell(1),
+ NUCLIDE.LiFBeF2UF4.getFluidStack(9000),
+ new ItemStack[] {
+ CI.emptyCells(1)
+ },
+ new int[] {10000},
+ NUCLIDE.LiFBeF2ZrF4UF4.getFluidStack(10000),
+ 20 * 60 * 5,
+ MaterialUtils.getVoltageForTier(5));
+
+ // LiFBeF2ThF4UF4
+ CORE.RA.addReactorProcessingUnitRecipe(
+ CI.getNumberedAdvancedCircuit(10),
+ NUCLIDE.LiFBeF2UF4.getCell(9),
+ FLUORIDES.THORIUM_TETRAFLUORIDE.getFluidStack(1000),
+ new ItemStack[] {
+ CI.emptyCells(9)
+ },
+ new int[] {10000},
+ NUCLIDE.LiFBeF2ThF4UF4.getFluidStack(10000),
+ 20 * 60 * 5,
+ MaterialUtils.getVoltageForTier(5));
+
+ CORE.RA.addReactorProcessingUnitRecipe(
+ CI.getNumberedAdvancedCircuit(10),
+ FLUORIDES.THORIUM_TETRAFLUORIDE.getCell(1),
+ NUCLIDE.LiFBeF2UF4.getFluidStack(9000),
+ new ItemStack[] {
+ CI.emptyCells(1)
+ },
+ new int[] {10000},
+ NUCLIDE.LiFBeF2ThF4UF4.getFluidStack(10000),
+ 20 * 60 * 5,
+ MaterialUtils.getVoltageForTier(5));
+
+
+
+
}
}