diff options
Diffstat (limited to 'src')
10 files changed, 287 insertions, 123 deletions
diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java index a8cac86065..bada1f4c4e 100644 --- a/src/Java/gtPlusPlus/core/item/ModItems.java +++ b/src/Java/gtPlusPlus/core/item/ModItems.java @@ -21,6 +21,8 @@ import gtPlusPlus.core.item.tool.staballoy.*; import gtPlusPlus.core.lib.*; import gtPlusPlus.core.lib.CORE.configSwitches; import gtPlusPlus.core.material.*; +import gtPlusPlus.core.material.nuclear.FLUORIDES; +import gtPlusPlus.core.material.nuclear.NUCLIDE; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.debug.DEBUG_INIT; import gtPlusPlus.core.util.fluid.FluidUtils; @@ -242,21 +244,28 @@ public final class ModItems { try{ //Elements generate first so they can be used in compounds. - + + //Zirconium - Because Greg himself never added it. + MaterialGenerator.generate(ELEMENT.getInstance().ZIRCONIUM); + + + + + //Nuclear Isotopes + //Lithium-7 is used as a part of the molten lithium fluoride in molten salt reactors: liquid-fluoride nuclear reactors. //The large neutron-absorption cross-section of lithium-6 (about 940 barns[5]) as compared with the very small //neutron cross-section of lithium-7 (about 45 millibarns) makes high separation of lithium-7 from natural lithium a //strong requirement for the possible use in lithium fluoride reactors. - MaterialGenerator.generate(ELEMENT.getInstance().LITHIUM7, false); + MaterialGenerator.generate(NUCLIDE.getInstance().LITHIUM7, false); //Thorium-232 is the most stable isotope of Thorium, purified for nuclear fuel use in this case. - MaterialGenerator.generate(ELEMENT.getInstance().THORIUM232, false); + MaterialGenerator.generateNuclearMaterial(NUCLIDE.getInstance().THORIUM232); //Production of 233U (through the neutron irradiation of 232Th) invariably produces small amounts of 232U as an impurity //because of parasitic (n,2n) reactions on uranium-233 itself, or on protactinium-233, or on thorium-232: - MaterialGenerator.generate(ELEMENT.getInstance().URANIUM232); + MaterialGenerator.generate(NUCLIDE.getInstance().URANIUM232); //Uranium-233 is a fissile isotope of uranium that is bred from thorium-232 as part of the thorium fuel cycle. - MaterialGenerator.generate(ELEMENT.getInstance().URANIUM233); - //Zirconium - Because Greg himself never added it. - MaterialGenerator.generate(ELEMENT.getInstance().ZIRCONIUM); + MaterialGenerator.generate(NUCLIDE.getInstance().URANIUM233); + //Carbides - Tungsten Carbide exists in .09 so don't generate it. - Should still come before alloys though @@ -270,12 +279,17 @@ public final class ModItems { //Generate Fluorides - MaterialGenerator.generate(ALLOY.THORIUM_HEXAFLUORIDE, false); - MaterialGenerator.generate(ALLOY.THORIUM_TETRAFLUORIDE, false); + MaterialGenerator.generateNuclearMaterial(FLUORIDES.BERYLLIUM_FLUORIDE); + MaterialGenerator.generateNuclearMaterial(FLUORIDES.LITHIUM_FLUORIDE); + MaterialGenerator.generateNuclearMaterial(FLUORIDES.THORIUM_TETRAFLUORIDE); + MaterialGenerator.generateNuclearMaterial(FLUORIDES.THORIUM_HEXAFLUORIDE); + MaterialGenerator.generateNuclearMaterial(FLUORIDES.URANIUM_TETRAFLUORIDE); + MaterialGenerator.generateNuclearMaterial(FLUORIDES.URANIUM_HEXAFLUORIDE); + MaterialGenerator.generateNuclearMaterial(FLUORIDES.ZIRCONIUM_TETRAFLUORIDE); //Generate Reactor Fuel Salts - MaterialGenerator.generate(ALLOY.LiFBeF2ZrF4U235, false); - MaterialGenerator.generate(ALLOY.LiFBeF2ThF4UF4, false); + MaterialGenerator.generateNuclearMaterial(NUCLIDE.LiFBeF2ZrF4U235); + MaterialGenerator.generateNuclearMaterial(NUCLIDE.LiFBeF2ThF4UF4); //Generate some Alloys @@ -363,13 +377,13 @@ public final class ModItems { //Nuclear Fuel Dusts - dustUraniumTetraFluoride = ItemUtils.generateSpecialUseDusts("UraniumTetrafluoride", "Uranium Tetrafluoride", Utils.rgbtoHexValue(17, 179, 42))[0]; - dustUraniumHexaFluoride = ItemUtils.generateSpecialUseDusts("UraniumHexafluoride", "Uranium Hexafluoride", Utils.rgbtoHexValue(9, 199, 32))[0]; + //dustUraniumTetraFluoride = ItemUtils.generateSpecialUseDusts("UraniumTetrafluoride", "Uranium Tetrafluoride", Utils.rgbtoHexValue(17, 179, 42))[0]; + //dustUraniumHexaFluoride = ItemUtils.generateSpecialUseDusts("UraniumHexafluoride", "Uranium Hexafluoride", Utils.rgbtoHexValue(9, 199, 32))[0]; - dustBerylliumFluoride = ItemUtils.generateSpecialUseDusts("BerylliumFluoride", "Beryllium Fluoride", Utils.rgbtoHexValue(175, 175, 175))[0]; //https://en.wikipedia.org/wiki/Beryllium_fluoride + //dustBerylliumFluoride = ItemUtils.generateSpecialUseDusts("BerylliumFluoride", "Beryllium Fluoride", Utils.rgbtoHexValue(175, 175, 175))[0]; //https://en.wikipedia.org/wiki/Beryllium_fluoride dustLithiumCarbonate = ItemUtils.generateSpecialUseDusts("LithiumCarbonate", "Lithium Carbonate", Utils.rgbtoHexValue(240, 240, 240))[0]; //https://en.wikipedia.org/wiki/Lithium_carbonate - dustLithiumFluoride = ItemUtils.generateSpecialUseDusts("LithiumFluoride", "Lithium Fluoride", Utils.rgbtoHexValue(245, 245, 245))[0]; //https://en.wikipedia.org/wiki/Lithium_fluoride + //dustLithiumFluoride = ItemUtils.generateSpecialUseDusts("LithiumFluoride", "Lithium Fluoride", Utils.rgbtoHexValue(245, 245, 245))[0]; //https://en.wikipedia.org/wiki/Lithium_fluoride dustLithiumPeroxide = ItemUtils.generateSpecialUseDusts("LithiumPeroxide", "Lithium Peroxide", Utils.rgbtoHexValue(250, 250, 250))[0]; //https://en.wikipedia.org/wiki/Lithium_peroxide dustLithiumHydroxide = ItemUtils.generateSpecialUseDusts("LithiumHydroxide", "Lithium Hydroxide", Utils.rgbtoHexValue(250, 250, 250))[0]; //https://en.wikipedia.org/wiki/Lithium_hydroxide @@ -382,11 +396,11 @@ public final class ModItems { //FLiBe Fuel Compounds dustLi2BeF4 = ItemUtils.generateSpecialUseDusts("Li2BeF4", "Li2BeF4 Fuel Compound", Utils.rgbtoHexValue(255, 255, 255))[0]; //https://en.wikipedia.org/wiki/FLiBe - FluidUtils.generateFluid("UraniumTetrafluoride", "Uranium Tetrafluoride", 4700, new short[]{17, 179, 42, 100}); - FluidUtils.generateFluid("UraniumHexafluoride", "Uranium Hexafluoride", 5500, new short[]{9, 199, 32, 100}); - FluidUtils.generateFluid("BerylliumFluoride", "Beryllium Fluoride", 3200, new short[]{175, 175, 175, 100}); - FluidUtils.generateFluid("LithiumFluoride", "Lithium Fluoride", 2000, new short[]{235, 235, 235, 100}); - FluidUtils.generateFluid("Li2BeF4", "Li2BeF4", 7430, new short[]{255, 255, 255, 100}); + //FluidUtils.generateFluid("UraniumTetrafluoride", "Uranium Tetrafluoride", 4700, new short[]{17, 179, 42, 100}); + //FluidUtils.generateFluid("UraniumHexafluoride", "Uranium Hexafluoride", 5500, new short[]{9, 199, 32, 100}); + //FluidUtils.generateFluid("BerylliumFluoride", "Beryllium Fluoride", 3200, new short[]{175, 175, 175, 100}); + //FluidUtils.generateFluid("LithiumFluoride", "Lithium Fluoride", 2000, new short[]{235, 235, 235, 100}); + FluidUtils.generateFluid("Li2BeF4", "Reactor Secondary Fuel [Li2BeF4]", 7430, new short[]{255, 255, 255, 100}); //Zirconium //Cinter Pellet. @@ -397,17 +411,25 @@ public final class ModItems { dustCookedZrCl4 = ItemUtils.generateSpecialUseDusts("CookedZrCl4", "Cooked ZrCl4", Utils.rgbtoHexValue(180, 180, 180))[0]; //http://www.iaea.org/inis/collection/NCLCollectionStore/_Public/39/036/39036750.pdf //Zirconium Tetrafluoride dustZrF4 = ItemUtils.generateSpecialUseDusts("ZrF4", "ZrF4", Utils.rgbtoHexValue(170, 170, 170))[0]; //https://en.wikipedia.org/wiki/Zirconium_tetrafluoride - + GT_OreDictUnificator.registerOre("cellZrF4", ItemUtils.getItemStackOfAmountFromOreDict("cellZirconiumTetrafluoride", 1)); + GT_OreDictUnificator.registerOre("dustZirconiumTetrafluoride", new ItemStack(ModItems.dustZrF4)); + FluidUtils.generateFluid("ZirconiumTetrafluoride", "Zirconium Tetrafluoride", 500, new short[]{170, 170, 140, 100}); + //Coolant Salt //NaBF4 - NaF - 621C - dustNaBF4NaF = ItemUtils.generateSpecialUseDusts("NaBF4NaF", "NaBF4NaF", Utils.rgbtoHexValue(170, 170, 170))[0]; //https://en.wikipedia.org/wiki/Zirconium_tetrafluoride + dustNaBF4NaF = ItemUtils.generateSpecialUseDusts("NaBF4NaF", "NaBF4NaF", Utils.rgbtoHexValue(45, 45, 90))[0]; //https://en.wikipedia.org/wiki/Zirconium_tetrafluoride //Fuel Salt //7LiF - BeF2 - ZrF4 - UF4 - 650C - dustLiFBeF2ZrF4UF4 = ItemUtils.generateSpecialUseDusts("LiFBeF2ZrF4UF4", "LiFBeF2ZrF4UF4", Utils.rgbtoHexValue(170, 170, 170))[0]; //https://en.wikipedia.org/wiki/Zirconium_tetrafluoride + dustLiFBeF2ZrF4UF4 = ItemUtils.generateSpecialUseDusts("LiFBeF2ZrF4UF4", "LiF-BeF2-ZrF4-UF4", Utils.rgbtoHexValue(35, 90, 25))[0]; //https://en.wikipedia.org/wiki/Zirconium_tetrafluoride //7LiF - BeF2 - ZrF4 - U235 - 590C - dustLiFBeF2ZrF4U235 = ItemUtils.generateSpecialUseDusts("LiFBeF2ZrF4U235", "LiFBeF2ZrF4U235", Utils.rgbtoHexValue(170, 170, 170))[0]; //https://en.wikipedia.org/wiki/Zirconium_tetrafluoride + dustLiFBeF2ZrF4U235 = ItemUtils.generateSpecialUseDusts("LiFBeF2ZrF4U235", "LiF-BeF2-ZrF4-U235", Utils.rgbtoHexValue(35, 80, 15))[0]; //https://en.wikipedia.org/wiki/Zirconium_tetrafluoride //7liF - BeF2 - ThF4 - UF4 - 566C - dustLiFBeF2ThF4UF4 = ItemUtils.generateSpecialUseDusts("LiFBeF2ThF4UF4", "LiFBeF2ThF4UF4", Utils.rgbtoHexValue(170, 170, 170))[0]; //https://en.wikipedia.org/wiki/Zirconium_tetrafluoride + dustLiFBeF2ThF4UF4 = ItemUtils.generateSpecialUseDusts("LiFBeF2ThF4UF4", "LiF-BeF2-ThF4-UF4", Utils.rgbtoHexValue(35, 70, 25))[0]; //https://en.wikipedia.org/wiki/Zirconium_tetrafluoride + + FluidUtils.generateFluid("NaBF4NaF", "NaBF4-NaF", 621, new short[]{45, 45, 90, 100}); + FluidUtils.generateFluid("LiFBeF2ZrF4UF4", "LiF-BeF2-ZrF4-UF4", 650, new short[]{35, 90, 25, 100}); + FluidUtils.generateFluid("LiFBeF2ZrF4U235", "LiF-BeF2-ZrF4-U235", 590, new short[]{35, 80, 15, 100}); + FluidUtils.generateFluid("LiFBeF2ThF4UF4", "LiF-BeF2-ThF4-UF4", 566, new short[]{35, 70, 25, 100}); //Test items diff --git a/src/Java/gtPlusPlus/core/material/ALLOY.java b/src/Java/gtPlusPlus/core/material/ALLOY.java index a3d4946744..5e29a75725 100644 --- a/src/Java/gtPlusPlus/core/material/ALLOY.java +++ b/src/Java/gtPlusPlus/core/material/ALLOY.java @@ -1,6 +1,5 @@ package gtPlusPlus.core.material; -import gregtech.api.enums.Materials; public final class ALLOY { @@ -39,13 +38,13 @@ public final class ALLOY { "Staballoy", //Material Name new short[]{68, 75, 66, 0}, //Material Colour 3450, //Melting Point in C - ((ELEMENT.getInstance().URANIUM.getBoilingPointC()*9)+(ELEMENT.getInstance().TITANIUM.getBoilingPointC()*1))/10, //Boiling Point in C - ((ELEMENT.getInstance().URANIUM.getProtons()*9)+ELEMENT.getInstance().TITANIUM.getProtons())/10, //Protons - ((ELEMENT.getInstance().URANIUM.getNeutrons()*9)+ELEMENT.getInstance().TITANIUM.getNeutrons())/10, //Neutrons + ((ELEMENT.getInstance().URANIUM238.getBoilingPointC()*9)+(ELEMENT.getInstance().TITANIUM.getBoilingPointC()*1))/10, //Boiling Point in C + ((ELEMENT.getInstance().URANIUM238.getProtons()*9)+ELEMENT.getInstance().TITANIUM.getProtons())/10, //Protons + ((ELEMENT.getInstance().URANIUM238.getNeutrons()*9)+ELEMENT.getInstance().TITANIUM.getNeutrons())/10, //Neutrons true, //Uses Blast furnace? //Material Stacks with Percentage of required elements. new MaterialStack[]{ - new MaterialStack(ELEMENT.getInstance().URANIUM, 9), + new MaterialStack(ELEMENT.getInstance().URANIUM238, 9), new MaterialStack(ELEMENT.getInstance().TITANIUM, 1) }); @@ -501,70 +500,6 @@ public final class ALLOY { new MaterialStack(ELEMENT.getInstance().OXYGEN, 10) }); - public static final Material THORIUM_HEXAFLUORIDE = new Material( - "Thorium Hexafluoride", //Material Name - new short[]{10, 50, 10, 0}, //Material Colour - Materials.Thorium.mMeltingPoint, //Melting Point in C - Materials.Thorium.mBlastFurnaceTemp, //Boiling Point in C - ((ELEMENT.getInstance().THORIUM232.getProtons()+ELEMENT.getInstance().THORIUM232.getProtons()+(ELEMENT.getInstance().FLUORINE.getProtons()*6))/8), //Protons - ((ELEMENT.getInstance().THORIUM232.getNeutrons()+ELEMENT.getInstance().THORIUM232.getNeutrons()+(ELEMENT.getInstance().FLUORINE.getNeutrons()*6))/8), //Neutrons - false, //Uses Blast furnace? - //Material Stacks with Percentage of required elements. - new MaterialStack[]{ - new MaterialStack(ELEMENT.getInstance().THORIUM232, 1), - new MaterialStack(ELEMENT.getInstance().THORIUM, 1), - new MaterialStack(ELEMENT.getInstance().FLUORINE, 12) - }); - - public static final Material THORIUM_TETRAFLUORIDE = new Material( - "Thorium Tetrafluoride", //Material Name - new short[]{25, 70, 25, 0}, //Material Colour - Materials.Thorium.mMeltingPoint, //Melting Point in C - Materials.Thorium.mBlastFurnaceTemp, //Boiling Point in C - ((ELEMENT.getInstance().THORIUM232.getProtons()+(ELEMENT.getInstance().FLUORINE.getProtons()*4))/5), //Protons - ((ELEMENT.getInstance().THORIUM232.getNeutrons()+(ELEMENT.getInstance().FLUORINE.getNeutrons()*4))/5), //Neutrons - false, //Uses Blast furnace? - //Material Stacks with Percentage of required elements. - new MaterialStack[]{ - new MaterialStack(ELEMENT.getInstance().THORIUM232, 1), - new MaterialStack(ELEMENT.getInstance().FLUORINE, 4) - }); - - public static final Material LiFBeF2ZrF4U235 = new Material( - "Reactor Salt LiFBeF2ZrF4U235", //Material Name - new short[]{50, 70, 15, 0}, //Material Colour - 590, //Melting Point in C - 890, //Boiling Point in C - 150, //Protons - 150, //Neutrons - true, //Uses Blast furnace? - //Material Stacks with Percentage of required elements. - new MaterialStack[]{ - new MaterialStack(ELEMENT.getInstance().LITHIUM7, 1), - new MaterialStack(ELEMENT.getInstance().BERYLLIUM, 1), - new MaterialStack(ELEMENT.getInstance().ZIRCONIUM, 1), - new MaterialStack(ELEMENT.getInstance().URANIUM, 1), - new MaterialStack(ELEMENT.getInstance().FLUORINE, 6) - }); - - public static final Material LiFBeF2ThF4UF4 = new Material( - "Reactor Salt LiFBeF2ThF4UF4", //Material Name - new short[]{40, 90, 25, 0}, //Material Colour - 566, //Melting Point in C - 870, //Boiling Point in C - 150, //Protons - 150, //Neutrons - true, //Uses Blast furnace? - //Material Stacks with Percentage of required elements. - new MaterialStack[]{ - new MaterialStack(ELEMENT.getInstance().LITHIUM7, 1), - new MaterialStack(ELEMENT.getInstance().BERYLLIUM, 1), - new MaterialStack(ALLOY.THORIUM_TETRAFLUORIDE, 1), - new MaterialStack(ELEMENT.getInstance().URANIUM233, 1), - new MaterialStack(ELEMENT.getInstance().FLUORINE, 6) - }); - - public static final Material LEAGRISIUM = new Material( "Grisium", //Material Name new short[]{53, 93, 106, 0}, //Material Colour diff --git a/src/Java/gtPlusPlus/core/material/ELEMENT.java b/src/Java/gtPlusPlus/core/material/ELEMENT.java index 8933055668..19b17fa333 100644 --- a/src/Java/gtPlusPlus/core/material/ELEMENT.java +++ b/src/Java/gtPlusPlus/core/material/ELEMENT.java @@ -87,17 +87,13 @@ public final class ELEMENT { public final Material RADON = MaterialUtils.generateMaterialFromGtENUM(Materials.Radon); public final Material THORIUM = new Material("Thorium", Materials.Thorium.mRGBa, Materials.Thorium.mMeltingPoint, Materials.Thorium.mBlastFurnaceTemp, 90, 142, false, MaterialUtils.superscript("Th"), 1); /*MaterialUtils.generateMaterialFromGtENUM(Materials.Thorium);*/ - public final Material URANIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Uranium); - public final Material PLUTONIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Plutonium); + public final Material URANIUM238 = MaterialUtils.generateMaterialFromGtENUM(Materials.Uranium); + public final Material URANIUM235 = MaterialUtils.generateMaterialFromGtENUM(Materials.Uranium235); + public final Material PLUTONIUM244 = MaterialUtils.generateMaterialFromGtENUM(Materials.Plutonium); + public final Material PLUTONIUM241 = MaterialUtils.generateMaterialFromGtENUM(Materials.Plutonium241); + - //Custom Isotopes - public final Material LITHIUM7 = new Material("Lithium 7", Materials.Lithium.mRGBa, Materials.Lithium.mMeltingPoint, Materials.Lithium.mBlastFurnaceTemp, Materials.Lithium.getProtons(), Materials.Lithium.getNeutrons(), Materials.Lithium.mBlastFurnaceRequired, MaterialUtils.superscript("7Li"), 0);//Not a GT Inherited Material - public final Material URANIUM232 = new Material("Uranium 232", new short[]{88, 220, 103, 0}, 1132, 4131, 92, 140, false, MaterialUtils.superscript("232U"), 4);//Not a GT Inherited Material - public final Material URANIUM233 = new Material("Uranium 233", new short[]{73, 220, 83, 0}, 1132, 4131, 92, 141, false, MaterialUtils.superscript("233U"), 2);//Not a GT Inherited Material - - public final Material THORIUM232 = new Material("Thorium 232", new short[]{15, 60, 15, 0}, Materials.Thorium.mMeltingPoint, Materials.Thorium.mBlastFurnaceTemp, 90, 142, false, MaterialUtils.superscript("232Th"), 1);//Not a GT Inherited Material - //public final Material THORIUMTETRAFLUORIDE = new Material("Thorium Tetrafluoride", Materials.Thorium.mRGBa, Materials.Thorium.mMeltingPoint, Materials.Thorium.mBlastFurnaceTemp, Materials.Thorium.getProtons(), Materials.Thorium.getNeutrons(), false, MaterialUtils.superscript("Th"), 1);//Not a GT Inherited Material //Misc diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java index 0ff2037c99..b590b8b1c0 100644 --- a/src/Java/gtPlusPlus/core/material/Material.java +++ b/src/Java/gtPlusPlus/core/material/Material.java @@ -238,7 +238,7 @@ public class Material { final public ItemStack getBlock(int stacksize){ return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("block"+unlocalizedName, stacksize); } - + final public ItemStack getDust(int stacksize){ return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dust"+unlocalizedName, stacksize); } diff --git a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java index 17640e7eb2..eb70191d78 100644 --- a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java +++ b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java @@ -107,4 +107,34 @@ public class MaterialGenerator { } + public static void generateNuclearMaterial(final Material matInfo){ + String unlocalizedName = matInfo.getUnlocalizedName(); + String materialName = matInfo.getLocalizedName(); + short[] C = matInfo.getRGBA(); + int Colour = Utils.rgbtoHexValue(C[0], C[1], C[2]); + + int sRadiation = 0; + if (matInfo.vRadioationLevel != 0){ + sRadiation = matInfo.vRadioationLevel; + } + + Item temp; + Block tempBlock; + + tempBlock = new BlockBaseModular(unlocalizedName, materialName,BlockTypes.STANDARD, Colour); + temp = new BaseItemIngot("itemIngot"+unlocalizedName, materialName, Colour, sRadiation); + temp = new BaseItemDust("itemDust"+unlocalizedName, materialName, matInfo, Colour, "Dust", 3, sRadiation); + temp = new BaseItemDust("itemDustTiny"+unlocalizedName, materialName, matInfo, Colour, "Tiny", 2, sRadiation); + temp = new BaseItemDust("itemDustSmall"+unlocalizedName, materialName, matInfo, Colour, "Small", 1, sRadiation); + temp = new BaseItemNugget(matInfo); + temp = new BaseItemPlate(matInfo); + temp = new BaseItemPlateDouble(matInfo); + + RecipeGen_Plates.generateRecipes(matInfo); + RecipeGen_Extruder.generateRecipes(matInfo); + RecipeGen_ShapedCrafting.generateRecipes(matInfo); + RecipeGen_DustGeneration.generateRecipes(matInfo, true); + } + + } diff --git a/src/Java/gtPlusPlus/core/material/nuclear/FLUORIDES.java b/src/Java/gtPlusPlus/core/material/nuclear/FLUORIDES.java new file mode 100644 index 0000000000..15e5578d48 --- /dev/null +++ b/src/Java/gtPlusPlus/core/material/nuclear/FLUORIDES.java @@ -0,0 +1,113 @@ +package gtPlusPlus.core.material.nuclear; + +import gregtech.api.enums.Materials; +import gtPlusPlus.core.material.*; + +public class FLUORIDES { + + private static final FLUORIDES thisClass = new FLUORIDES(); + public FLUORIDES(){} + public static FLUORIDES getInstance(){return thisClass;} + + public static final Material THORIUM_TETRAFLUORIDE = new Material( + "Thorium Tetrafluoride", //Material Name + new short[]{25, 70, 25, 0}, //Material Colour + Materials.Thorium.mMeltingPoint, //Melting Point in C + Materials.Thorium.mBlastFurnaceTemp, //Boiling Point in C + ((NUCLIDE.getInstance().THORIUM232.getProtons()+(ELEMENT.getInstance().FLUORINE.getProtons()*4))/5), //Protons + ((NUCLIDE.getInstance().THORIUM232.getNeutrons()+(ELEMENT.getInstance().FLUORINE.getNeutrons()*4))/5), //Neutrons + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(NUCLIDE.getInstance().THORIUM232, 1), + new MaterialStack(ELEMENT.getInstance().FLUORINE, 4) + }); + + public static final Material THORIUM_HEXAFLUORIDE = new Material( + "Thorium Hexafluoride", //Material Name + new short[]{10, 50, 10, 0}, //Material Colour + Materials.Thorium.mMeltingPoint, //Melting Point in C + Materials.Thorium.mBlastFurnaceTemp, //Boiling Point in C + ((NUCLIDE.getInstance().THORIUM232.getProtons()+NUCLIDE.getInstance().THORIUM232.getProtons()+(ELEMENT.getInstance().FLUORINE.getProtons()*6))/8), //Protons + ((NUCLIDE.getInstance().THORIUM232.getNeutrons()+NUCLIDE.getInstance().THORIUM232.getNeutrons()+(ELEMENT.getInstance().FLUORINE.getNeutrons()*6))/8), //Neutrons + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(NUCLIDE.getInstance().THORIUM232, 1), + new MaterialStack(ELEMENT.getInstance().THORIUM, 1), + new MaterialStack(ELEMENT.getInstance().FLUORINE, 12) + }); + + public static final Material URANIUM_TETRAFLUORIDE = new Material( + "Uranium Tetrafluoride", //Material Name + new short[]{50, 240, 50, 0}, //Material Colour + Materials.Uranium235.mMeltingPoint, //Melting Point in C + Materials.Uranium235.mBlastFurnaceTemp, //Boiling Point in C + ((NUCLIDE.getInstance().URANIUM233.getProtons()+(ELEMENT.getInstance().FLUORINE.getProtons()*4))/5), //Protons + ((NUCLIDE.getInstance().URANIUM233.getNeutrons()+(ELEMENT.getInstance().FLUORINE.getNeutrons()*4))/5), //Neutrons + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(NUCLIDE.getInstance().URANIUM233, 1), + new MaterialStack(ELEMENT.getInstance().FLUORINE, 4) + }); + + public static final Material URANIUM_HEXAFLUORIDE = new Material( + "Uranium Hexafluoride", //Material Name + new short[]{70, 250, 70, 0}, //Material Colour + Materials.Uranium235.mMeltingPoint, //Melting Point in C + Materials.Uranium235.mBlastFurnaceTemp, //Boiling Point in C + ((FLUORIDES.URANIUM_TETRAFLUORIDE.getProtons()+(ELEMENT.getInstance().FLUORINE.getProtons()*2))/3), //Protons + ((FLUORIDES.URANIUM_TETRAFLUORIDE.getNeutrons()+(ELEMENT.getInstance().FLUORINE.getNeutrons()*2))/3), //Neutrons + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(FLUORIDES.URANIUM_TETRAFLUORIDE, 1), + new MaterialStack(ELEMENT.getInstance().FLUORINE, 2) + }); + + // + + public static final Material ZIRCONIUM_TETRAFLUORIDE = new Material( + "Zirconium Tetrafluoride", //Material Name + ELEMENT.getInstance().ZIRCONIUM.getRGBA(), //Material Colour + ELEMENT.getInstance().ZIRCONIUM.getMeltingPointC(), //Melting Point in C + ELEMENT.getInstance().ZIRCONIUM.getBoilingPointC(), //Boiling Point in C + ((ELEMENT.getInstance().ZIRCONIUM.getProtons()+(ELEMENT.getInstance().FLUORINE.getProtons()*4))/5), //Protons + ((ELEMENT.getInstance().ZIRCONIUM.getNeutrons()+(ELEMENT.getInstance().FLUORINE.getNeutrons()*4))/5), //Neutrons + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.getInstance().ZIRCONIUM, 1), + new MaterialStack(ELEMENT.getInstance().FLUORINE, 4) + }); + + public static final Material BERYLLIUM_FLUORIDE = new Material( + "Beryllium Tetrafluoride", //Material Name + new short[]{120, 180, 120, 0}, //Material Colour + Materials.Beryllium.mMeltingPoint, //Melting Point in C + Materials.Beryllium.mBlastFurnaceTemp, //Boiling Point in C + ((ELEMENT.getInstance().BERYLLIUM.getProtons()+(ELEMENT.getInstance().FLUORINE.getProtons()*2))/3), //Protons + ((ELEMENT.getInstance().BERYLLIUM.getNeutrons()+(ELEMENT.getInstance().FLUORINE.getNeutrons()*2))/3), //Neutrons + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.getInstance().BERYLLIUM, 1), + new MaterialStack(ELEMENT.getInstance().FLUORINE, 2) + }); + + public static final Material LITHIUM_FLUORIDE = new Material( + "Lithium Tetrafluoride", //Material Name + new short[]{225, 220, 255, 0}, //Material Colour + Materials.Lithium.mMeltingPoint, //Melting Point in C + Materials.Lithium.mBlastFurnaceTemp, //Boiling Point in C + ((NUCLIDE.getInstance().LITHIUM7.getProtons()+(ELEMENT.getInstance().FLUORINE.getProtons()))/2), //Protons + ((NUCLIDE.getInstance().LITHIUM7.getNeutrons()+(ELEMENT.getInstance().FLUORINE.getNeutrons()))/2), //Neutrons + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(NUCLIDE.getInstance().LITHIUM7, 1), + new MaterialStack(ELEMENT.getInstance().FLUORINE, 1) + }); + +} diff --git a/src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java b/src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java new file mode 100644 index 0000000000..fa48446c1c --- /dev/null +++ b/src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java @@ -0,0 +1,55 @@ +package gtPlusPlus.core.material.nuclear; + +import gregtech.api.enums.Materials; +import gtPlusPlus.core.material.*; +import gtPlusPlus.core.util.materials.MaterialUtils; + + +public final class NUCLIDE { + + private static final NUCLIDE thisClass = new NUCLIDE(); + public NUCLIDE(){} + public static NUCLIDE getInstance(){return thisClass;} + + //Custom Isotopes + public final Material LITHIUM7 = new Material("Lithium 7", Materials.Lithium.mRGBa, Materials.Lithium.mMeltingPoint, Materials.Lithium.mBlastFurnaceTemp, Materials.Lithium.getProtons(), Materials.Lithium.getNeutrons(), Materials.Lithium.mBlastFurnaceRequired, MaterialUtils.superscript("7Li"), 0);//Not a GT Inherited Material + public final Material URANIUM232 = new Material("Uranium 232", new short[]{88, 220, 103, 0}, 1132, 4131, 92, 140, false, MaterialUtils.superscript("232U"), 4);//Not a GT Inherited Material + public final Material URANIUM233 = new Material("Uranium 233", new short[]{73, 220, 83, 0}, 1132, 4131, 92, 141, false, MaterialUtils.superscript("233U"), 2);//Not a GT Inherited Material + public final Material THORIUM232 = new Material("Thorium 232", new short[]{15, 60, 15, 0}, Materials.Thorium.mMeltingPoint, Materials.Thorium.mBlastFurnaceTemp, 90, 142, false, MaterialUtils.superscript("232Th"), 1);//Not a GT Inherited Material + + + + public static final Material LiFBeF2ThF4UF4 = new Material( + "Reactor Salt LiFBeF2ThF4UF4", //Material Name + new short[]{40, 90, 25, 0}, //Material Colour + 566, //Melting Point in C + 870, //Boiling Point in C + 150, //Protons + 150, //Neutrons + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(FLUORIDES.LITHIUM_FLUORIDE, 65), + new MaterialStack(FLUORIDES.BERYLLIUM_FLUORIDE, 28), + new MaterialStack(FLUORIDES.THORIUM_TETRAFLUORIDE, 1), + new MaterialStack(FLUORIDES.URANIUM_TETRAFLUORIDE, 1) + }); + + public static final Material LiFBeF2ZrF4U235 = new Material( + "Reactor Salt LiFBeF2ZrF4U235", //Material Name + new short[]{50, 70, 15, 0}, //Material Colour + 590, //Melting Point in C + 890, //Boiling Point in C + 150, //Protons + 150, //Neutrons + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(FLUORIDES.LITHIUM_FLUORIDE, 55), + new MaterialStack(FLUORIDES.BERYLLIUM_FLUORIDE, 25), + new MaterialStack(FLUORIDES.ZIRCONIUM_TETRAFLUORIDE, 6), + new MaterialStack(ELEMENT.getInstance().URANIUM235, 14) + }); + + +} diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java index 9ae25b841d..c6918e2cef 100644 --- a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java +++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java @@ -6,7 +6,7 @@ import gregtech.api.util.*; import gtPlusPlus.core.item.ModItems; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.lib.LoadedMods; -import gtPlusPlus.core.material.ELEMENT; +import gtPlusPlus.core.material.nuclear.NUCLIDE; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.fluid.FluidUtils; import gtPlusPlus.core.util.item.ItemUtils; @@ -302,7 +302,7 @@ public class RECIPES_GREGTECH { CORE.RA.addLFTRRecipe( FluidUtils.getFluidStack("molten.thoriumtetrafluoride", 400), //Fluid input (slot 1) FluidUtils.getFluidStack("molten.li2bef4", 1200), //Fluid output (slot 2) - FluidUtils.getFluidStack("molten.uranium233", 750), //Output Array of Items - Upto 9, + FluidUtils.getFluidStack("molten.uraniumhexafluoride", 1600), //Output Array of Items - Upto 9, 12000*20, //Time in ticks 3500); //EU @@ -311,7 +311,7 @@ public class RECIPES_GREGTECH { CORE.RA.addLFTRRecipe( FluidUtils.getFluidStack("molten.uranium", 144*64), //Fluid input (slot 1) FluidUtils.getFluidStack("molten.li2bef4", 144*12), //Fluid output (slot 2) - FluidUtils.getFluidStack("molten.uranium233", 144), //Output Array of Items - Upto 9, + FluidUtils.getFluidStack("molten.uraniumhexafluoride", 6*144), //Output Array of Items - Upto 9, 120*60*20, //Time in ticks 8000); //EU @@ -319,7 +319,7 @@ public class RECIPES_GREGTECH { CORE.RA.addLFTRRecipe( FluidUtils.getFluidStack("molten.uraniumtetrafluoride", 200), //Fluid input (slot 1) FluidUtils.getFluidStack("molten.li2bef4", 1000), //Fluid output (slot 2) - FluidUtils.getFluidStack("molten.uranium233", 500), //Output Array of Items - Upto 9, + FluidUtils.getFluidStack("molten.uraniumhexafluoride", 1200), //Output Array of Items - Upto 9, 16000*20, //Time in ticks 4000); //EU @@ -411,7 +411,7 @@ public class RECIPES_GREGTECH { GT_Values.RA.addChemicalBathRecipe( ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumCarbonate", 10), FluidUtils.getFluidStack("hydrofluoricacid", 20000), - ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumFluoride", 5), + ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumTetrafluoride", 5), null, null, new int[]{}, @@ -427,9 +427,9 @@ public class RECIPES_GREGTECH { GT_Values.NI, GT_Values.NF, GT_Values.NF, - ELEMENT.getInstance().THORIUM232.getDust(2), + NUCLIDE.getInstance().THORIUM232.getDust(2), ItemUtils.getItemStackOfAmountFromOreDict("dustSmallThorium", 20), - ELEMENT.getInstance().URANIUM232.getDust(1), + NUCLIDE.getInstance().URANIUM232.getDust(1), GT_Values.NI, GT_Values.NI, GT_Values.NI, @@ -441,8 +441,8 @@ public class RECIPES_GREGTECH { private static void mixerRecipes(){ GT_Values.RA.addMixerRecipe(ItemUtils.getItemStackOfAmountFromOreDict("dustSulfur", 1), null, null, null, FluidUtils.getFluidStack("oxygen", 288), FluidUtils.getFluidStack("sulfurdioxide", 432), null, 600, 60); - GT_Values.RA.addMixerRecipe(ItemUtils.getItemStackOfAmountFromOreDict("dustUranium233", 2), ItemUtils.getItemStackOfAmountFromOreDict("dustUranium233", 1), null, null, FluidUtils.getFluidStack("hydrofluoricacid", 2000), FluidUtils.getFluidStack("molten.uraniumtetrafluoride", 144*3), null, 3000, 500); - GT_Values.RA.addMixerRecipe(ItemUtils.getItemStackOfAmountFromOreDict("cellFluorine", 1), ItemUtils.getItemStackOfAmountFromOreDict("cellFluorine", 1), null, null, FluidUtils.getFluidStack("molten.uraniumtetrafluoride", 720), FluidUtils.getFluidStack("molten.uraniumhexafluoride", 288), null, 5000, 2000); + GT_Values.RA.addMixerRecipe(ItemUtils.getItemStackOfAmountFromOreDict("dustUranium233", 4), ItemUtils.getItemStackOfAmountFromOreDict("dustUranium235", 1), null, null, FluidUtils.getFluidStack("hydrofluoricacid", 2000), FluidUtils.getFluidStack("molten.uraniumtetrafluoride", 144*3), null, 3000, 500); + //GT_Values.RA.addMixerRecipe(ItemUtils.getItemStackOfAmountFromOreDict("cellFluorine", 1), ItemUtils.getItemStackOfAmountFromOreDict("cellFluorine", 1), null, null, FluidUtils.getFluidStack("molten.uraniumtetrafluoride", 720), FluidUtils.getFluidStack("molten.uraniumhexafluoride", 288), null, 5000, 2000); } private static void chemicalReactorRecipes(){ @@ -460,7 +460,7 @@ public class RECIPES_GREGTECH { null, //Input Stack 2 FluidUtils.getFluidStack("hydrofluoricacid", 2500), //Fluid Input FluidUtils.getFluidStack("water", 2500), //Fluid Output - ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumFluoride", 5), //Output Stack + ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumTetrafluoride", 5), //Output Stack 600*20 ); @@ -491,8 +491,8 @@ public class RECIPES_GREGTECH { private static void blastFurnaceRecipes(){ GT_Values.RA.addBlastRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumFluoride", 2), - ItemUtils.getItemStackOfAmountFromOreDict("dustBerylliumFluoride", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumTetrafluoride", 2), + ItemUtils.getItemStackOfAmountFromOreDict("dustBerylliumTetrafluoride", 1), GT_Values.NF, GT_Values.NF, ItemUtils.getItemStackOfAmountFromOreDict("dustLi2BeF4", 3), null, diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java index 2e1e259b4e..fe1e6d6f2d 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java @@ -4,6 +4,8 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.material.*; +import gtPlusPlus.core.material.nuclear.FLUORIDES; +import gtPlusPlus.core.material.nuclear.NUCLIDE; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.item.ItemUtils; @@ -31,11 +33,11 @@ public class RecipeGen_BlastSmelter implements Runnable{ if (null != (tStack = M.getDust(1))) { Material[] badMaterials = { - ALLOY.THORIUM_HEXAFLUORIDE, - ALLOY.THORIUM_TETRAFLUORIDE, + FLUORIDES.THORIUM_HEXAFLUORIDE, + FLUORIDES.THORIUM_TETRAFLUORIDE, ALLOY.BLOODSTEEL, - ALLOY.LiFBeF2ThF4UF4, - ALLOY.LiFBeF2ZrF4U235 + NUCLIDE.LiFBeF2ThF4UF4, + NUCLIDE.LiFBeF2ZrF4U235 }; for (Material R : badMaterials){ if (M == R){ diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java index 857ce8013d..fd9c1b722e 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java @@ -21,8 +21,12 @@ public class RecipeGen_DustGeneration implements Runnable{ public void run() { generateRecipes(toGenerate); } - + public static void generateRecipes(final Material material){ + generateRecipes(material, false); + } + + public static void generateRecipes(final Material material, boolean disableOptional){ final int tVoltageMultiplier = material.getMeltingPointK() >= 2800 ? 64 : 16; Utils.LOG_WARNING("Generating Shaped Crafting recipes for "+material.getLocalizedName()); //TODO @@ -218,10 +222,17 @@ public class RecipeGen_DustGeneration implements Runnable{ } //Macerate blocks back to dusts. - GT_ModHandler.addPulverisationRecipe(material.getBlock(1), material.getDust(9)); + ItemStack materialBlock = material.getBlock(1); + ItemStack materialFrameBox = material.getFrameBox(1); + + if (materialBlock != null) + GT_ModHandler.addPulverisationRecipe(materialBlock, material.getDust(9)); + + if (materialFrameBox != null) + GT_ModHandler.addPulverisationRecipe(materialFrameBox, material.getDust(2)); //Is this a composite? - if (inputStacks != null){ + if (inputStacks != null && !disableOptional){ //Is this a composite? Utils.LOG_INFO("mixer length: "+inputStacks.length); if (inputStacks.length != 0 && inputStacks.length <= 4){ |