aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2021-12-07 19:14:28 +0000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2021-12-07 19:14:28 +0000
commitf59af4cca6ba29e355f4ebde31f4ae16131f4230 (patch)
treec9272ac2de527dcd5d83463d50dc0fc053e0a310
parent680fef1a0f49d8706fd58093da63a2d9438d0641 (diff)
downloadGT5-Unofficial-f59af4cca6ba29e355f4ebde31f4ae16131f4230.tar.gz
GT5-Unofficial-f59af4cca6ba29e355f4ebde31f4ae16131f4230.tar.bz2
GT5-Unofficial-f59af4cca6ba29e355f4ebde31f4ae16131f4230.zip
Added more LFTR fuel processing.
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/NuclearChem.java5
-rw-r--r--src/Java/gtPlusPlus/core/material/MaterialGenerator.java8
-rw-r--r--src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java256
4 files changed, 181 insertions, 90 deletions
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/NuclearChem.java b/src/Java/gtPlusPlus/core/item/chemistry/NuclearChem.java
index db41da43b2..f112b0d2a5 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/NuclearChem.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/NuclearChem.java
@@ -18,6 +18,9 @@ public class NuclearChem extends ItemPackage {
public static Fluid Burnt_LiFBeF2ZrF4UF4;
public static Fluid Burnt_LiFBeF2ZrF4U235;
+
+ public static Fluid Impure_LiFBeF2;
+
public static Fluid GeneticMutagen;
private static boolean generateMutagenRecipe = false;
@@ -65,7 +68,7 @@ public class NuclearChem extends ItemPackage {
Burnt_LiFBeF2ThF4UF4 = FluidUtils.generateFluidNonMolten("BurntLiFBeF2ThF4UF4", "Burnt LiFBeF2ThF4UF4 Salt", 545, new short[]{48, 175, 48, 100}, null, null);
Burnt_LiFBeF2ZrF4UF4 = FluidUtils.generateFluidNonMolten("BurntLiFBeF2ZrF4UF4", "Burnt LiFBeF2ZrF4UF4 Salt", 520, new short[]{48, 168, 68, 100}, null, null);
Burnt_LiFBeF2ZrF4U235 = FluidUtils.generateFluidNonMolten("BurntLiFBeF2ZrF4U235", "Burnt LiFBeF2ZrF4U235 Salt", 533, new short[]{68, 185, 48, 100}, null, null);
-
+ Impure_LiFBeF2 = FluidUtils.generateFluidNonMolten("ImpureLiFBeF2", "Impure LiFBeF2 Salt", 533, new short[]{110, 75, 186, 100}, null, null);
if (FluidUtils.getFluidStack("fluid.Mutagen", 1) == null) {
GeneticMutagen = FluidUtils.generateFluidNonMolten("GeneticMutagen", "Genetic Mutagen", 12, new short[]{22, 148, 185, 100}, null, null);
generateMutagenRecipe = true;
diff --git a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
index a8dcb37f02..f48ed9f5cb 100644
--- a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
+++ b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
@@ -277,7 +277,7 @@ public class MaterialGenerator {
}
public static void generateNuclearDusts(final Material matInfo, boolean generateDehydratorRecipe){
- generateNuclearMaterial(matInfo, false, true, false, false, false);
+ generateNuclearMaterial(matInfo, false, true, false, false, true);
if (generateDehydratorRecipe && matInfo.getFluid() != null && matInfo.getDust(0) != null) {
CORE.RA.addDehydratorRecipe(
new ItemStack[] {
@@ -302,7 +302,7 @@ public class MaterialGenerator {
}
public static void generateNuclearMaterial(final Material matInfo, final boolean generateBlock,
- final boolean generateDusts, final boolean generateIngot, final boolean generatePlates, final boolean generateMiscRecipes){
+ final boolean generateDusts, final boolean generateIngot, final boolean generatePlates, final boolean disableOptionalRecipes){
try {
if (generateBlock) {
@@ -324,14 +324,14 @@ public class MaterialGenerator {
new RecipeGen_Assembler(matInfo);
}
- if (generateMiscRecipes) {
+ if (!disableOptionalRecipes) {
new RecipeGen_ShapedCrafting(matInfo);
new RecipeGen_Fluids(matInfo);
new RecipeGen_MaterialProcessing(matInfo);
new RecipeGen_Recycling(matInfo);
}
- new RecipeGen_DustGeneration(matInfo, generateMiscRecipes);
+ new RecipeGen_DustGeneration(matInfo, disableOptionalRecipes);
new RecipeGen_Plasma(matInfo);
} catch (final Throwable t){
diff --git a/src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java b/src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java
index 8fe99f16e7..4d3233f948 100644
--- a/src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java
+++ b/src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java
@@ -160,7 +160,7 @@ public final class NUCLIDE {
new MaterialStack[]{
new MaterialStack(FLUORIDES.URANIUM_HEXAFLUORIDE, 1),
new MaterialStack(ELEMENT.getInstance().FLUORINE, 3),
- new MaterialStack(ELEMENT.getInstance().PROTACTINIUM, 1)
+ new MaterialStack(ELEMENT.getInstance().PHOSPHORUS, 1)
});
public static final Material LiFBeF2 = new Material(
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));
+
+
+
+
}
}