diff options
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.java | 256 |
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)); + + + + } } |