From 4620b63754964605be8a50461e83bea4e1ff29ef Mon Sep 17 00:00:00 2001 From: funions123 <39248127+funions123@users.noreply.github.com> Date: Thu, 17 Oct 2024 06:07:50 -0400 Subject: [PATCH] thorium and uranium fuel reprocessing lines --- .../nuclear_horizons/CommonProxy.java | 11 +- .../nuclear_horizons/NuclearHorizons.java | 2 + .../reactors/items/ItemList.java | 65 ++++++ .../items/material/MaterialsNuclear.java | 201 ++++++++++++++++-- .../recipes/CanningMachine.java | 35 +++ .../nuclear_horizons/recipes/Centrifuge.java | 25 +++ .../recipes/ChemicalReactor.java | 174 ++++++++++++++- .../nuclear_horizons/recipes/Mixer.java | 57 +++++ .../recipes/ThermalCentrifuge.java | 41 ++++ 9 files changed, 586 insertions(+), 25 deletions(-) create mode 100644 src/main/java/com/recursive_pineapple/nuclear_horizons/recipes/CanningMachine.java create mode 100644 src/main/java/com/recursive_pineapple/nuclear_horizons/recipes/Mixer.java create mode 100644 src/main/java/com/recursive_pineapple/nuclear_horizons/recipes/ThermalCentrifuge.java diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/CommonProxy.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/CommonProxy.java index d780780..4b82f2f 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/CommonProxy.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/CommonProxy.java @@ -7,13 +7,15 @@ import com.recursive_pineapple.nuclear_horizons.reactors.items.ItemList; import com.recursive_pineapple.nuclear_horizons.reactors.tile.simulator.SimulationItems; -import com.recursive_pineapple.nuclear_horizons.recipes.Centrifuge; -import com.recursive_pineapple.nuclear_horizons.recipes.ChemicalReactor; +import com.recursive_pineapple.nuclear_horizons.recipes.*; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.event.FMLServerStartingEvent; +import cpw.mods.fml.common.registry.GameData; +import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; +import mcp.mobius.waila.api.IWailaRegistrar; public class CommonProxy { @@ -43,9 +45,14 @@ public void postInit(FMLPostInitializationEvent event) { SimulationItems.registerSimulationItems(); ForeignItems.registerForeignReactorItems(); + //change the owner of werkstoff materials to this mod in waila + //register recipes new ChemicalReactor().run(); new Centrifuge().run(); + new ThermalCentrifuge().run(); + new Mixer().run(); + new CanningMachine().run(); } // register server commands in this event handler (Remove if not needed) diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/NuclearHorizons.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/NuclearHorizons.java index 2837ea4..d922878 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/NuclearHorizons.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/NuclearHorizons.java @@ -1,7 +1,9 @@ package com.recursive_pineapple.nuclear_horizons; +import bartworks.API.WerkstoffAPI; import bartworks.API.WerkstoffAdderRegistry; import com.recursive_pineapple.nuclear_horizons.reactors.items.material.MaterialsNuclear; +import gregtech.api.util.GTWaila; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/ItemList.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/ItemList.java index 86189ab..63fd6c6 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/ItemList.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/ItemList.java @@ -6,6 +6,45 @@ public class ItemList { + public static final BasicFuelRodItem THORIUM_1X_ROD = new BasicFuelRodItem( + "fuelRodThorium", + "reactorThoriumSimple", + 2.0, + 4.0, + 1, + false, + 20_000); + + public static final BasicFuelRodProductItem DEPLETED_THORIUM_1X_ROD = new BasicFuelRodProductItem( + "depletedFuelRodThorium", + "reactorDepletedFuelRodThorium"); + + public static final BasicFuelRodItem THORIUM_2X_ROD = new BasicFuelRodItem( + "fuelRodThoriumDual", + "reactorThoriumDual", + 2.0, + 4.0, + 1, + false, + 20_000); + + public static final BasicFuelRodProductItem DEPLETED_THORIUM_2X_ROD = new BasicFuelRodProductItem( + "depletedFuelRodThoriumDual", + "reactorDepletedFuelRodThoriumDual"); + + public static final BasicFuelRodItem THORIUM_4X_ROD = new BasicFuelRodItem( + "fuelRodThoriumQuad", + "reactorThoriumQuad", + 2.0, + 4.0, + 1, + false, + 20_000); + + public static final BasicFuelRodProductItem DEPLETED_THORIUM_4X_ROD = new BasicFuelRodProductItem( + "depletedFuelRodThoriumQuad", + "reactorDepletedFuelRodThoriumQuad"); + public static final BasicFuelRodItem URANIUM_1X_ROD = new BasicFuelRodItem( "fuelRodUranium", "reactorUraniumSimple", @@ -27,6 +66,11 @@ public class ItemList { 2, false, 20_000); + + public static final BasicFuelRodProductItem DEPLETED_URANIUM_2X_ROD = new BasicFuelRodProductItem( + "depletedFuelRodUraniumDual", + "reactorDepletedFuelRodUraniumDual"); + public static final BasicFuelRodItem URANIUM_4X_ROD = new BasicFuelRodItem( "quadFuelRodUranium", "reactorUraniumQuad", @@ -36,6 +80,10 @@ public class ItemList { false, 20_000); + public static final BasicFuelRodProductItem DEPLETED_URANIUM_4X_ROD = new BasicFuelRodProductItem( + "depletedFuelRodUraniumQuad", + "reactorDepletedFuelRodUraniumQuad"); + public static final BasicFuelRodItem MOX_1X_ROD = new BasicFuelRodItem( "fuelRodMOX", "reactorMOXSimple", @@ -212,12 +260,29 @@ public class ItemList { public static final MetaCellItem CELLS = new MetaCellItem(); public static void registerItems() { + THORIUM_1X_ROD.register(); + DEPLETED_THORIUM_1X_ROD.register(); + THORIUM_1X_ROD.setProduct(GameRegistry.findItemStack(NuclearHorizons.MODID, "depletedFuelRodThorium", 1)); + + THORIUM_2X_ROD.register(); + DEPLETED_THORIUM_2X_ROD.register(); + THORIUM_2X_ROD.setProduct(GameRegistry.findItemStack(NuclearHorizons.MODID, "depletedFuelRodThoriumDual", 1)); + + THORIUM_4X_ROD.register(); + DEPLETED_THORIUM_4X_ROD.register(); + THORIUM_4X_ROD.setProduct(GameRegistry.findItemStack(NuclearHorizons.MODID, "depletedFuelRodThoriumQuad", 1)); + URANIUM_1X_ROD.register(); DEPLETED_URANIUM_1X_ROD.register(); URANIUM_1X_ROD.setProduct(GameRegistry.findItemStack(NuclearHorizons.MODID, "depletedFuelRodUranium", 1)); URANIUM_2X_ROD.register(); + DEPLETED_URANIUM_2X_ROD.register(); + URANIUM_2X_ROD.setProduct(GameRegistry.findItemStack(NuclearHorizons.MODID, "depletedFuelRodUraniumDual", 1)); + URANIUM_4X_ROD.register(); + DEPLETED_URANIUM_4X_ROD.register(); + URANIUM_4X_ROD.setProduct(GameRegistry.findItemStack(NuclearHorizons.MODID, "depletedFuelRodUraniumQuad", 1)); MOX_1X_ROD.register(); MOX_2X_ROD.register(); diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/material/MaterialsNuclear.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/material/MaterialsNuclear.java index e66e083..8873d21 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/material/MaterialsNuclear.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/reactors/items/material/MaterialsNuclear.java @@ -32,10 +32,7 @@ public class MaterialsNuclear implements Runnable { new Werkstoff.GenerationFeatures().disable() .onlyDust(), offsetID + 1, - TextureSet.SET_DULL, - - new Pair<>(NATURAL_URANIUM, 1), - new Pair<>(Materials.Fluorine, 4)); + TextureSet.SET_DULL); public static final Werkstoff NATURAL_URANIUM_HEXAFLUORIDE = new Werkstoff( new short[] { 232, 124, 219 }, @@ -46,9 +43,7 @@ public class MaterialsNuclear implements Runnable { new Werkstoff.GenerationFeatures().disable() .addCells(), offsetID + 2, - TextureSet.SET_FLUID, - new Pair<>(NATURAL_URANIUM_TETRAFLUORIDE, 1), - new Pair<>(Materials.Fluorine, 2)); + TextureSet.SET_FLUID); public static final Werkstoff DEPLETED_URANIUM_HEXAFLUORIDE = new Werkstoff( new short[] { 232, 124, 219 }, @@ -59,9 +54,7 @@ public class MaterialsNuclear implements Runnable { new Werkstoff.GenerationFeatures().disable() .addCells(), offsetID + 3, - TextureSet.SET_FLUID, - new Pair<>(NATURAL_URANIUM_TETRAFLUORIDE, 1), - new Pair<>(Materials.Fluorine, 2)); + TextureSet.SET_FLUID); public static final Werkstoff ENRICHED_URANIUM_HEXAFLUORIDE = new Werkstoff( new short[] { 232, 124, 219 }, @@ -72,9 +65,7 @@ public class MaterialsNuclear implements Runnable { new Werkstoff.GenerationFeatures().disable() .addCells(), offsetID + 4, - TextureSet.SET_FLUID, - new Pair<>(NATURAL_URANIUM_TETRAFLUORIDE, 1), - new Pair<>(Materials.Fluorine, 2)); + TextureSet.SET_FLUID); public static final Werkstoff URANIUM_238_DIOXIDE = new Werkstoff( new short[] { 132, 224, 219 }, @@ -85,9 +76,7 @@ public class MaterialsNuclear implements Runnable { new Werkstoff.GenerationFeatures().disable() .onlyDust(), offsetID + 5, - TextureSet.SET_DULL, - new Pair<>(Materials.Uranium, 1), - new Pair<>(Materials.Oxygen, 2)); + TextureSet.SET_DULL); public static final Werkstoff URANIUM_235_DIOXIDE = new Werkstoff( new short[] { 132, 224, 219 }, @@ -98,9 +87,7 @@ public class MaterialsNuclear implements Runnable { new Werkstoff.GenerationFeatures().disable() .onlyDust(), offsetID + 6, - TextureSet.SET_DULL, - new Pair<>(Materials.Uranium235, 1), - new Pair<>(Materials.Oxygen, 2)); + TextureSet.SET_DULL); public static final Werkstoff TRIBUTYL_PHOSPHATE = new Werkstoff( new short[] { 132, 224, 219 }, @@ -135,6 +122,182 @@ public class MaterialsNuclear implements Runnable { offsetID + 9, TextureSet.SET_DULL); + public static final Werkstoff ENRICHED_URANIUM_FUEL = new Werkstoff( + new short[] { 92, 214, 92 }, + "Enriched Uranium Fuel", + subscriptNumbers("235UO2(238UO2)4"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 10, + TextureSet.SET_METALLIC); + + public static final Werkstoff ENRICHED_THORIUM_FUEL = new Werkstoff( + new short[] { 0, 77, 0 }, + "Enriched Thorium Fuel", + subscriptNumbers("235UO2(ThO2)4"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 11, + TextureSet.SET_METALLIC); + + public static final Werkstoff DEPLETED_URANIUM_FUEL = new Werkstoff( + new short[] { 41, 163, 41 }, + "Depleted Uranium Fuel", + subscriptNumbers("??(238UO2)"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 12, + TextureSet.SET_METALLIC); + + public static final Werkstoff DEPLETED_THORIUM_FUEL = new Werkstoff( + new short[] { 41, 163, 41 }, + "Depleted Thorium Fuel", + subscriptNumbers("??(ThO2)"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 13, + TextureSet.SET_METALLIC); + + public static final Werkstoff URANIUM_233_DIOXIDE = new Werkstoff( + new short[] { 132, 224, 219 }, + "Uranium-233 Dioxide", + subscriptNumbers("233UO2"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 14, + TextureSet.SET_DULL); + + public static final Werkstoff DEPLETED_URANIUM_FUEL_SOLUTION = new Werkstoff( + new short[] { 132, 224, 219 }, + "Depleted Uranium Fuel Solution", + subscriptNumbers("??(238UO2)(HNO3)"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID + 15, + TextureSet.SET_FLUID); + + public static final Werkstoff DEPLETED_THORIUM_FUEL_SOLUTION = new Werkstoff( + new short[] { 132, 224, 219 }, + "Depleted Thorium Fuel Solution", + subscriptNumbers("??(ThO2)(HNO3)(HF)"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID + 16, + TextureSet.SET_FLUID); + + public static final Werkstoff TREATED_DEPLETED_URANIUM_FUEL_SOLUTION = new Werkstoff( + new short[] { 132, 224, 219 }, + "Treated Depleted Uranium Fuel Solution", + subscriptNumbers("??(238UO2)(HNO3)(PO(OC4H9)3)"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID + 17, + TextureSet.SET_FLUID); + + public static final Werkstoff TREATED_DEPLETED_THORIUM_FUEL_SOLUTION = new Werkstoff( + new short[] { 132, 224, 219 }, + "Treated Depleted Thorium Fuel Solution", + subscriptNumbers("??(ThO2)(HNO3)(HF)(PO(OC4H9)3)"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID + 18, + TextureSet.SET_FLUID); + + public static final Werkstoff AQUEOUS_PLUTONIUM_SOLUTION = new Werkstoff( + new short[] { 132, 224, 219 }, + "Aqueous Plutonium Solution", + subscriptNumbers("??Pu(NO3)2"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID + 19, + TextureSet.SET_FLUID); + + public static final Werkstoff KEROSENE_URANIUM_SOLUTION = new Werkstoff( + new short[] { 132, 224, 219 }, + "Kerosene Uranium Solution", + subscriptNumbers("238U(NO3)2"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID + 20, + TextureSet.SET_FLUID); + + public static final Werkstoff AQUEOUS_THORIUM_SOLUTION = new Werkstoff( + new short[] { 132, 224, 219 }, + "Aqueous Thorium Solution", + subscriptNumbers("??Th(NO3)2(HF)"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID + 21, + TextureSet.SET_FLUID); + + public static final Werkstoff KEROSENE_URANIUM233_SOLUTION = new Werkstoff( + new short[] { 132, 224, 219 }, + "Kerosene Uranium-233 Solution", + subscriptNumbers("233U(NO3)2"), + new Werkstoff.Stats(), + Werkstoff.Types.MIXTURE, + new Werkstoff.GenerationFeatures().disable() + .addCells(), + offsetID + 22, + TextureSet.SET_FLUID); + + public static final Werkstoff TRANSPLUTONIC_WASTE_MIXTURE = new Werkstoff( + new short[] { 132, 224, 219 }, + "Transplutonic Waste Mixture", + subscriptNumbers("?Am?"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 23, + TextureSet.SET_DULL); + + public static final Werkstoff PLUTONIUM_239_DIOXIDE = new Werkstoff( + new short[] { 132, 224, 219 }, + "Plutonium-239 Dioxide", + subscriptNumbers("239PuO2"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 24, + TextureSet.SET_DULL); + + public static final Werkstoff PLUTONIUM_241_DIOXIDE = new Werkstoff( + new short[] { 132, 224, 219 }, + "Plutonium-241 Dioxide", + subscriptNumbers("241PuO2"), + new Werkstoff.Stats(), + Werkstoff.Types.COMPOUND, + new Werkstoff.GenerationFeatures().disable() + .onlyDust(), + offsetID + 25, + TextureSet.SET_DULL); + private static final MaterialsNuclear INSTANCE = new MaterialsNuclear(); public static MaterialsNuclear getInstance() { diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/recipes/CanningMachine.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/recipes/CanningMachine.java new file mode 100644 index 0000000..6f7e4b4 --- /dev/null +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/recipes/CanningMachine.java @@ -0,0 +1,35 @@ +package com.recursive_pineapple.nuclear_horizons.recipes; + +import com.recursive_pineapple.nuclear_horizons.NuclearHorizons; +import com.recursive_pineapple.nuclear_horizons.reactors.items.material.MaterialsNuclear; +import cpw.mods.fml.common.registry.GameRegistry; +import gregtech.api.enums.GTValues; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; + +import static gregtech.api.recipe.RecipeMaps.cannerRecipes; +import static gregtech.api.util.GTRecipeBuilder.SECONDS; + +public class CanningMachine { + public void run() { + GTValues.RA.stdBuilder() + .itemInputs( + GameRegistry.findItemStack("GoodGenerator", "advancedFuelRod", 1), + MaterialsNuclear.ENRICHED_URANIUM_FUEL.get(OrePrefixes.dust, 4)) + .itemOutputs( + GameRegistry.findItemStack(NuclearHorizons.MODID, "fuelRodUranium", 1)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(cannerRecipes); + + GTValues.RA.stdBuilder() + .itemInputs( + GameRegistry.findItemStack("GoodGenerator", "advancedFuelRod", 1), + MaterialsNuclear.ENRICHED_THORIUM_FUEL.get(OrePrefixes.dust, 4)) + .itemOutputs( + GameRegistry.findItemStack(NuclearHorizons.MODID, "fuelRodThorium", 1)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(cannerRecipes); + } +} diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/recipes/Centrifuge.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/recipes/Centrifuge.java index f6a9f81..35d547e 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/recipes/Centrifuge.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/recipes/Centrifuge.java @@ -21,5 +21,30 @@ public void run() { .duration(5 * MINUTES) .eut(TierEU.RECIPE_HV) .addTo(centrifugeRecipes); + + //PUREX + GTValues.RA.stdBuilder() + .itemInputs(ItemList.Cell_Empty.get(3)) + .fluidInputs( + MaterialsNuclear.TREATED_DEPLETED_URANIUM_FUEL_SOLUTION.getFluidOrGas(24000)) + .itemOutputs( + MaterialsNuclear.AQUEOUS_PLUTONIUM_SOLUTION.get(OrePrefixes.cell, 3)) + .fluidOutputs( + MaterialsNuclear.KEROSENE_URANIUM_SOLUTION.getFluidOrGas(21000)) + .duration(2 * MINUTES) + .eut(TierEU.RECIPE_HV) + .addTo(centrifugeRecipes); + + GTValues.RA.stdBuilder() + .itemInputs(ItemList.Cell_Empty.get(9)) + .fluidInputs( + MaterialsNuclear.TREATED_DEPLETED_THORIUM_FUEL_SOLUTION.getFluidOrGas(28000)) + .itemOutputs( + MaterialsNuclear.KEROSENE_URANIUM233_SOLUTION.get(OrePrefixes.cell, 9)) + .fluidOutputs( + MaterialsNuclear.AQUEOUS_THORIUM_SOLUTION.getFluidOrGas(22000)) + .duration(2 * MINUTES) + .eut(TierEU.RECIPE_HV) + .addTo(centrifugeRecipes); } } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/recipes/ChemicalReactor.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/recipes/ChemicalReactor.java index 10d90ac..2205450 100644 --- a/src/main/java/com/recursive_pineapple/nuclear_horizons/recipes/ChemicalReactor.java +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/recipes/ChemicalReactor.java @@ -1,13 +1,12 @@ package com.recursive_pineapple.nuclear_horizons.recipes; import com.recursive_pineapple.nuclear_horizons.reactors.items.material.MaterialsNuclear; -import gregtech.api.enums.GTValues; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.TierEU; +import gregtech.api.enums.*; import gregtech.api.util.GTOreDictUnificator; import gtPlusPlus.core.util.minecraft.ItemUtils; +import net.minecraft.block.material.Material; +import net.minecraftforge.fluids.FluidRegistry; import static gregtech.api.recipe.RecipeMaps.multiblockChemicalReactorRecipes; import static gregtech.api.util.GTRecipeBuilder.SECONDS; @@ -15,6 +14,82 @@ public class ChemicalReactor { public void run() { + //reduction of uranium dioxides to uranium metals + GTValues.RA.stdBuilder() + .itemInputs( + MaterialsNuclear.URANIUM_235_DIOXIDE.get(OrePrefixes.dust, 3), + Materials.Sodium.getDust(4)) + .fluidInputs( + Materials.HydrofluoricAcid.getFluid(4000)) + .itemOutputs( + Materials.Uranium235.getDust(1), + ItemUtils.getItemStackOfAmountFromOreDict("dustSodiumFluoride", 4)) + .fluidOutputs( + Materials.Water.getFluid(2000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GTValues.RA.stdBuilder() + .itemInputs( + MaterialsNuclear.URANIUM_233_DIOXIDE.get(OrePrefixes.dust, 3), + Materials.Sodium.getDust(4)) + .fluidInputs( + Materials.HydrofluoricAcid.getFluid(4000)) + .itemOutputs( + ItemUtils.getItemStackOfAmountFromOreDict("dustUranium233", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustSodiumFluoride", 4)) + .fluidOutputs( + Materials.Water.getFluid(2000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GTValues.RA.stdBuilder() + .itemInputs( + MaterialsNuclear.URANIUM_238_DIOXIDE.get(OrePrefixes.dust, 3), + Materials.Sodium.getDust(4)) + .fluidInputs( + Materials.HydrofluoricAcid.getFluid(4000)) + .itemOutputs( + Materials.Uranium.getDust(1), + ItemUtils.getItemStackOfAmountFromOreDict("dustSodiumFluoride", 4)) + .fluidOutputs( + Materials.Water.getFluid(2000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + //reduction of plutonium oxides to plutonium metal + GTValues.RA.stdBuilder() + .itemInputs( + MaterialsNuclear.PLUTONIUM_241_DIOXIDE.get(OrePrefixes.dust, 3), + Materials.Calcium.getDust(2)) + .fluidInputs( + Materials.HydrofluoricAcid.getFluid(4000)) + .itemOutputs( + Materials.Plutonium241.getDust(1), + ItemUtils.getItemStackOfAmountFromOreDict("dustCalciumFluoride", 2)) + .fluidOutputs( + Materials.Water.getFluid(2000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); + + GTValues.RA.stdBuilder() + .itemInputs( + MaterialsNuclear.PLUTONIUM_239_DIOXIDE.get(OrePrefixes.dust, 3), + Materials.Calcium.getDust(2)) + .fluidInputs( + Materials.HydrofluoricAcid.getFluid(4000)) + .itemOutputs( + Materials.Plutonium.getDust(1), + ItemUtils.getItemStackOfAmountFromOreDict("dustCalciumFluoride", 2)) + .fluidOutputs( + Materials.Water.getFluid(2000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(UniversalChemical); //natural uranium tetrafluoride GTValues.RA.stdBuilder() @@ -64,5 +139,96 @@ public void run() { .duration(20 * SECONDS) .eut(TierEU.RECIPE_HV) .addTo(multiblockChemicalReactorRecipes); + + //PUREX + GTValues.RA.stdBuilder() + .fluidInputs(Materials.NitricAcid.getFluid(9000)) + .itemInputs(MaterialsNuclear.DEPLETED_URANIUM_FUEL.get(OrePrefixes.dust, 10)) + .itemOutputs(MaterialsNuclear.TRANSPLUTONIC_WASTE_MIXTURE.get(OrePrefixes.dust, 1)) + .fluidOutputs(MaterialsNuclear.DEPLETED_URANIUM_FUEL_SOLUTION.getFluidOrGas(9000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + GTValues.RA.stdBuilder() + .fluidInputs(Materials.NitricAcid.getFluid(10000)) + .itemInputs( + MaterialsNuclear.DEPLETED_THORIUM_FUEL.get(OrePrefixes.dust, 10), + Materials.HydrofluoricAcid.getCells(1)) + .itemOutputs(ItemList.Cell_Empty.get(1)) + .fluidOutputs(MaterialsNuclear.DEPLETED_THORIUM_FUEL_SOLUTION.getFluidOrGas(11000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(UniversalChemical); + + //treating with TBP and kerosene + GTValues.RA.stdBuilder() + .fluidInputs( + MaterialsNuclear.DEPLETED_URANIUM_FUEL_SOLUTION.getFluidOrGas(9000), + MaterialsNuclear.TRIBUTYL_PHOSPHATE.getFluidOrGas(8000), + FluidRegistry.getFluidStack("fluid.kerosene", 8000)) + .itemOutputs(MaterialsNuclear.URANIUM_FISSION_PRODUCT_MIXTURE.get(OrePrefixes.dust, 1)) + .fluidOutputs(MaterialsNuclear.TREATED_DEPLETED_URANIUM_FUEL_SOLUTION.getFluidOrGas(24000)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GTValues.RA.stdBuilder() + .fluidInputs( + MaterialsNuclear.DEPLETED_THORIUM_FUEL_SOLUTION.getFluidOrGas(11000), + MaterialsNuclear.TRIBUTYL_PHOSPHATE.getFluidOrGas(9000), + FluidRegistry.getFluidStack("fluid.kerosene", 9000)) + .itemOutputs(MaterialsNuclear.URANIUM_FISSION_PRODUCT_MIXTURE.get(OrePrefixes.dust, 1)) + .fluidOutputs(MaterialsNuclear.TREATED_DEPLETED_THORIUM_FUEL_SOLUTION.getFluidOrGas(28000)) + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + //reducing separated solutions back to fuel materials + GTValues.RA.stdBuilder() + .fluidInputs(MaterialsNuclear.AQUEOUS_PLUTONIUM_SOLUTION.getFluidOrGas(6000)) + .itemOutputs( + MaterialsNuclear.PLUTONIUM_239_DIOXIDE.get(OrePrefixes.dust, 1), + MaterialsNuclear.PLUTONIUM_241_DIOXIDE.get(OrePrefixes.dust, 1)) + .fluidOutputs( + MaterialsNuclear.TRIBUTYL_PHOSPHATE.getFluidOrGas(2000), + Materials.NitrogenDioxide.getGas(2000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GTValues.RA.stdBuilder() + .fluidInputs(MaterialsNuclear.AQUEOUS_THORIUM_SOLUTION.getFluidOrGas(22000)) + .itemOutputs(ItemUtils.getItemStackOfAmountFromOreDict("dustThorianite", 7)) + .fluidOutputs( + MaterialsNuclear.TRIBUTYL_PHOSPHATE.getFluidOrGas(9000), + Materials.Fluorine.getGas(1000), + Materials.NitrogenDioxide.getGas(7000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GTValues.RA.stdBuilder() + .fluidInputs(MaterialsNuclear.KEROSENE_URANIUM233_SOLUTION.getFluidOrGas(9000)) + .itemOutputs(MaterialsNuclear.URANIUM_233_DIOXIDE.get(OrePrefixes.dust, 3)) + .fluidOutputs( + FluidRegistry.getFluidStack("fluid.kerosene", 9000), + Materials.NitrogenDioxide.getGas(3000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); + + GTValues.RA.stdBuilder() + .fluidInputs(MaterialsNuclear.KEROSENE_URANIUM_SOLUTION.getFluidOrGas(21000)) + .itemOutputs( + MaterialsNuclear.URANIUM_235_DIOXIDE.get(OrePrefixes.dust, 1), + MaterialsNuclear.URANIUM_238_DIOXIDE.get(OrePrefixes.dust, 6)) + .fluidOutputs( + FluidRegistry.getFluidStack("fluid.kerosene", 8000), + MaterialsNuclear.TRIBUTYL_PHOSPHATE.getFluidOrGas(6000), + Materials.NitrogenDioxide.getGas(7000)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(multiblockChemicalReactorRecipes); } } diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/recipes/Mixer.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/recipes/Mixer.java new file mode 100644 index 0000000..128b405 --- /dev/null +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/recipes/Mixer.java @@ -0,0 +1,57 @@ +package com.recursive_pineapple.nuclear_horizons.recipes; + +import com.recursive_pineapple.nuclear_horizons.NuclearHorizons; +import com.recursive_pineapple.nuclear_horizons.reactors.items.material.MaterialsNuclear; +import cpw.mods.fml.common.registry.GameRegistry; +import gregtech.api.enums.GTValues; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gtPlusPlus.core.util.minecraft.ItemUtils; + +import static gregtech.api.recipe.RecipeMaps.mixerRecipes; +import static gregtech.api.util.GTRecipeBuilder.SECONDS; + +public class Mixer { + public void run() { + GTValues.RA.stdBuilder() + .itemInputs( + MaterialsNuclear.URANIUM_235_DIOXIDE.get(OrePrefixes.dust, 1), + MaterialsNuclear.URANIUM_238_DIOXIDE.get(OrePrefixes.dust, 4)) + .itemOutputs( + MaterialsNuclear.ENRICHED_URANIUM_FUEL.get(OrePrefixes.dust, 5)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(mixerRecipes); + + GTValues.RA.stdBuilder() + .itemInputs( + MaterialsNuclear.URANIUM_233_DIOXIDE.get(OrePrefixes.dust, 1), + MaterialsNuclear.URANIUM_238_DIOXIDE.get(OrePrefixes.dust, 4)) + .itemOutputs( + MaterialsNuclear.ENRICHED_URANIUM_FUEL.get(OrePrefixes.dust, 5)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(mixerRecipes); + + GTValues.RA.stdBuilder() + .itemInputs( + MaterialsNuclear.URANIUM_235_DIOXIDE.get(OrePrefixes.dust, 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustThorianite", 4)) + .itemOutputs( + MaterialsNuclear.ENRICHED_THORIUM_FUEL.get(OrePrefixes.dust, 5)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(mixerRecipes); + + GTValues.RA.stdBuilder() + .itemInputs( + MaterialsNuclear.URANIUM_233_DIOXIDE.get(OrePrefixes.dust, 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustThorianite", 4)) + .itemOutputs( + MaterialsNuclear.ENRICHED_THORIUM_FUEL.get(OrePrefixes.dust, 5)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(mixerRecipes); + } +} diff --git a/src/main/java/com/recursive_pineapple/nuclear_horizons/recipes/ThermalCentrifuge.java b/src/main/java/com/recursive_pineapple/nuclear_horizons/recipes/ThermalCentrifuge.java new file mode 100644 index 0000000..d37b806 --- /dev/null +++ b/src/main/java/com/recursive_pineapple/nuclear_horizons/recipes/ThermalCentrifuge.java @@ -0,0 +1,41 @@ +package com.recursive_pineapple.nuclear_horizons.recipes; + +import com.recursive_pineapple.nuclear_horizons.NuclearHorizons; +import com.recursive_pineapple.nuclear_horizons.reactors.items.material.MaterialsNuclear; +import cpw.mods.fml.common.registry.GameRegistry; +import gregtech.api.enums.GTValues; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; +import gregtech.api.util.GTOreDictUnificator; + +import gtPlusPlus.core.util.minecraft.ItemUtils; + +import static gregtech.api.recipe.RecipeMaps.thermalCentrifugeRecipes; +import static gregtech.api.util.GTRecipeBuilder.SECONDS; + + +public class ThermalCentrifuge { + + public void run() { + GTValues.RA.stdBuilder() + .itemInputs( + GameRegistry.findItemStack(NuclearHorizons.MODID, "depletedFuelRodUranium", 1)) + .itemOutputs( + MaterialsNuclear.DEPLETED_URANIUM_FUEL.get(OrePrefixes.dust, 4), + GameRegistry.findItemStack("GoodGenerator", "advancedFuelRod", 1)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(thermalCentrifugeRecipes); + + GTValues.RA.stdBuilder() + .itemInputs( + GameRegistry.findItemStack(NuclearHorizons.MODID, "depletedFuelRodThorium", 1)) + .itemOutputs( + MaterialsNuclear.DEPLETED_THORIUM_FUEL.get(OrePrefixes.dust, 4), + GameRegistry.findItemStack("GoodGenerator", "advancedFuelRod", 1)) + .duration(20 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(thermalCentrifugeRecipes); + } +}