aboutsummaryrefslogtreecommitdiff
path: root/src/Java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java')
-rw-r--r--src/Java/gtPlusPlus/core/item/ModItems.java32
-rw-r--r--src/Java/gtPlusPlus/core/item/base/dusts/BaseItemDust.java10
-rw-r--r--src/Java/gtPlusPlus/core/item/base/dusts/BaseItemDustUnique.java15
-rw-r--r--src/Java/gtPlusPlus/core/material/ALLOY.java65
-rw-r--r--src/Java/gtPlusPlus/core/material/ELEMENT.java12
-rw-r--r--src/Java/gtPlusPlus/core/material/Material.java12
-rw-r--r--src/Java/gtPlusPlus/core/material/MaterialGenerator.java5
-rw-r--r--src/Java/gtPlusPlus/core/material/MaterialStack.java10
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java47
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_General.java2
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java8
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/blocks/fluid/GregtechFluidHandler.java12
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_MultiTank.java69
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java16
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java77
15 files changed, 342 insertions, 50 deletions
diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java
index 2657af18fa..2f0d9969a1 100644
--- a/src/Java/gtPlusPlus/core/item/ModItems.java
+++ b/src/Java/gtPlusPlus/core/item/ModItems.java
@@ -25,6 +25,7 @@ import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.debug.DEBUG_INIT;
import gtPlusPlus.core.util.fluid.FluidUtils;
import gtPlusPlus.core.util.item.ItemUtils;
+import gtPlusPlus.core.util.materials.MaterialUtils;
import net.minecraft.item.*;
import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.util.EnumChatFormatting;
@@ -172,6 +173,11 @@ public final class ModItems {
public static Item dustCookedZrCl4;
public static Item dustZrF4;
+ public static Item dustNaBF4NaF;
+ public static Item dustLiFBeF2ZrF4UF4;
+ public static Item dustLiFBeF2ZrF4U235;
+ public static Item dustLiFBeF2ThF4UF4;
+
//@SuppressWarnings("unused")
@@ -242,6 +248,8 @@ public final class ModItems {
//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);
+ //Thorium-232 is the most stable isotope of Thorium, purified for nuclear fuel use in this case.
+ MaterialGenerator.generate(ELEMENT.getInstance().THORIUM232, false);
//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);
@@ -251,7 +259,6 @@ public final class ModItems {
MaterialGenerator.generate(ELEMENT.getInstance().ZIRCONIUM);
-
//Carbides - Tungsten Carbide exists in .09 so don't generate it. - Should still come before alloys though
if (!CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK){
MaterialGenerator.generate(ALLOY.TUNGSTEN_CARBIDE);
@@ -262,6 +269,14 @@ public final class ModItems {
MaterialGenerator.generate(ALLOY.NIOBIUM_CARBIDE);
+ //Generate Fluorides
+ MaterialGenerator.generate(ALLOY.THORIUM_HEXAFLUORIDE, false);
+ MaterialGenerator.generate(ALLOY.THORIUM_TETRAFLUORIDE, false);
+
+ //Generate Reactor Fuel Salts
+ MaterialGenerator.generate(ALLOY.LiFBeF2ZrF4U235, false);
+ MaterialGenerator.generate(ALLOY.LiFBeF2ThF4UF4, false);
+
//Generate some Alloys
@@ -375,15 +390,26 @@ public final class ModItems {
//Zirconium
//Cinter Pellet.
- itemZirconiumChlorideCinterPellet = new CoreItem("itemZirconiumPellet", "Zirconium Pellet", tabMisc).setTextureName(CORE.MODID + ":itemShard");
+ itemZirconiumChlorideCinterPellet = new CoreItem("itemZirconiumPellet", "Zirconium Pellet ["+MaterialUtils.subscript("ZrCl4")+"]", tabMisc).setTextureName(CORE.MODID + ":itemShard");
GT_OreDictUnificator.registerOre("pelletZirconium", new ItemStack(itemZirconiumChlorideCinterPellet));
//Zirconium Chloride
dustZrCl4 = ItemUtils.generateSpecialUseDusts("ZrCl4", "ZrCl4", Utils.rgbtoHexValue(180, 180, 180))[0]; //http://www.iaea.org/inis/collection/NCLCollectionStore/_Public/39/036/39036750.pdf
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
+
+ //Coolant Salt
+ //NaBF4 - NaF - 621C
+ dustNaBF4NaF = ItemUtils.generateSpecialUseDusts("NaBF4NaF", "NaBF4NaF", Utils.rgbtoHexValue(170, 170, 170))[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
+ //7LiF - BeF2 - ZrF4 - U235 - 590C
+ dustLiFBeF2ZrF4U235 = ItemUtils.generateSpecialUseDusts("LiFBeF2ZrF4U235", "LiFBeF2ZrF4U235", Utils.rgbtoHexValue(170, 170, 170))[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
-
+
//Test items
metaItem2 = new BaseEuItem();
metaItem2.registerItem(0, EnumChatFormatting.BLACK+"Test Item 0", 0, 0, "I am 0.");
diff --git a/src/Java/gtPlusPlus/core/item/base/dusts/BaseItemDust.java b/src/Java/gtPlusPlus/core/item/base/dusts/BaseItemDust.java
index 7a7ebd0eb8..69d5363240 100644
--- a/src/Java/gtPlusPlus/core/item/base/dusts/BaseItemDust.java
+++ b/src/Java/gtPlusPlus/core/item/base/dusts/BaseItemDust.java
@@ -8,7 +8,6 @@ import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.entity.EntityUtils;
-import gtPlusPlus.core.util.fluid.FluidUtils;
import gtPlusPlus.core.util.item.ItemUtils;
import gtPlusPlus.core.util.math.MathUtils;
@@ -75,15 +74,6 @@ public class BaseItemDust extends Item{
}
addFurnaceRecipe();
addMacerationRecipe();
-
- GT_Values.RA.addFluidExtractionRecipe(
- ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dust"+Utils.sanitizeString(materialName), 1), //Input
- null, //Input 2
- FluidUtils.getFluidStack("molten."+Utils.sanitizeString(materialName), 144), //Fluid Output
- 0, //Chance
- 1*20, //Duration
- 16 //Eu Tick
- );
}
@Override
diff --git a/src/Java/gtPlusPlus/core/item/base/dusts/BaseItemDustUnique.java b/src/Java/gtPlusPlus/core/item/base/dusts/BaseItemDustUnique.java
index d5dd78a49b..eaccd31f30 100644
--- a/src/Java/gtPlusPlus/core/item/base/dusts/BaseItemDustUnique.java
+++ b/src/Java/gtPlusPlus/core/item/base/dusts/BaseItemDustUnique.java
@@ -6,6 +6,7 @@ import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.entity.EntityUtils;
import gtPlusPlus.core.util.item.ItemUtils;
+import gtPlusPlus.core.util.materials.MaterialUtils;
import gtPlusPlus.core.util.math.MathUtils;
import java.util.List;
@@ -69,13 +70,13 @@ public class BaseItemDustUnique extends Item{
public String getItemStackDisplayName(ItemStack iStack) {
if (getUnlocalizedName().contains("DustTiny")){
- name = "Tiny Pile of "+materialName + " Dust";
+ name = "Tiny Pile of "+MaterialUtils.subscript(materialName) + " Dust";
}
else if (getUnlocalizedName().contains("DustSmall")){
- name = "Small Pile of "+materialName + " Dust";
+ name = "Small Pile of "+MaterialUtils.subscript(materialName) + " Dust";
}
else {
- name = materialName + " Dust";
+ name = MaterialUtils.subscript(materialName) + " Dust";
}
return name;
}
@@ -90,13 +91,13 @@ public class BaseItemDustUnique extends Item{
public void addInformation(ItemStack stack, EntityPlayer aPlayer, List list, boolean bool) {
//if (pileType != null && materialName != null && pileType != "" && materialName != "" && !pileType.equals("") && !materialName.equals("")){
if (getUnlocalizedName().contains("DustTiny")){
- list.add(EnumChatFormatting.GRAY+"A tiny pile of " + materialName + " dust.");
+ list.add(EnumChatFormatting.GRAY+"A tiny pile of " + MaterialUtils.subscript(materialName) + " dust.");
}
else if (getUnlocalizedName().contains("DustSmall")){
- list.add(EnumChatFormatting.GRAY+"A small pile of " + materialName + " dust.");
+ list.add(EnumChatFormatting.GRAY+"A small pile of " + MaterialUtils.subscript(materialName) + " dust.");
}
else {
- list.add(EnumChatFormatting.GRAY+"A pile of " + materialName + " dust.");
+ list.add(EnumChatFormatting.GRAY+"A pile of " + MaterialUtils.subscript(materialName) + " dust.");
}
if (sRadiation > 0){
list.add(CORE.GT_Tooltip_Radioactive);
@@ -106,7 +107,7 @@ public class BaseItemDustUnique extends Item{
}
public final String getMaterialName() {
- return materialName;
+ return MaterialUtils.subscript(materialName);
}
@Override
diff --git a/src/Java/gtPlusPlus/core/material/ALLOY.java b/src/Java/gtPlusPlus/core/material/ALLOY.java
index b161ea0f4c..a3d4946744 100644
--- a/src/Java/gtPlusPlus/core/material/ALLOY.java
+++ b/src/Java/gtPlusPlus/core/material/ALLOY.java
@@ -1,5 +1,7 @@
package gtPlusPlus.core.material;
+import gregtech.api.enums.Materials;
+
public final class ALLOY {
@@ -499,6 +501,69 @@ 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
diff --git a/src/Java/gtPlusPlus/core/material/ELEMENT.java b/src/Java/gtPlusPlus/core/material/ELEMENT.java
index e88393e2f3..8933055668 100644
--- a/src/Java/gtPlusPlus/core/material/ELEMENT.java
+++ b/src/Java/gtPlusPlus/core/material/ELEMENT.java
@@ -85,15 +85,19 @@ public final class ELEMENT {
public final Material LEAD = MaterialUtils.generateMaterialFromGtENUM(Materials.Lead);
public final Material BISMUTH = MaterialUtils.generateMaterialFromGtENUM(Materials.Bismuth);
public final Material RADON = MaterialUtils.generateMaterialFromGtENUM(Materials.Radon);
- public final Material THORIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Thorium);
+ 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);
//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 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 1ddd93003a..a91ad41c4e 100644
--- a/src/Java/gtPlusPlus/core/material/Material.java
+++ b/src/Java/gtPlusPlus/core/material/Material.java
@@ -289,6 +289,14 @@ public class Material {
final public ItemStack getFrameBox(int stacksize){
return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("frameGt"+unlocalizedName, stacksize);
}
+
+ final public ItemStack getCell(int stacksize){
+ return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+unlocalizedName, stacksize);
+ }
+
+ final public ItemStack getNugget(int stacksize){
+ return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("nugget"+unlocalizedName, stacksize);
+ }
final public ItemStack[] getMaterialComposites(){
//Utils.LOG_WARNING("Something requested the materials needed for "+localizedName);
@@ -299,7 +307,7 @@ public class Material {
//Utils.LOG_WARNING("i:"+i);
ItemStack testNull = null;
try {
- testNull = vMaterialInput.get(i).getDustStack();
+ testNull = vMaterialInput.get(i).getValidStack();
} catch (Throwable r){
Utils.LOG_WARNING("Failed gathering material stack for "+localizedName+".");
Utils.LOG_WARNING("What Failed: Length:"+vMaterialInput.size()+" current:"+i);
@@ -307,7 +315,7 @@ public class Material {
try {
if (testNull != null){
//Utils.LOG_WARNING("not null");
- temp[i] = vMaterialInput.get(i).getDustStack();
+ temp[i] = vMaterialInput.get(i).getValidStack();
}
} catch (Throwable r){
Utils.LOG_WARNING("Failed setting slot "+i+", using "+localizedName);
diff --git a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
index 9e0506dabb..17640e7eb2 100644
--- a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
+++ b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
@@ -41,7 +41,7 @@ public class MaterialGenerator {
int sRadiation = 0;
if (ItemUtils.isRadioactive(materialName)){
- sRadiation = ItemUtils.getRadioactivityLevel(materialName);
+ sRadiation = matInfo.vRadioationLevel;
}
if (generateEverything == true){
@@ -103,8 +103,7 @@ public class MaterialGenerator {
RecipeGen_Extruder.generateRecipes(matInfo);
RecipeGen_ShapedCrafting.generateRecipes(matInfo);
RecipeGen_DustGeneration.generateRecipes(matInfo);
- if (matInfo != ALLOY.ENERGYCRYSTAL && matInfo != ALLOY.BLOODSTEEL)
- RecipeGen_BlastSmelter.generateARecipe(matInfo);
+ RecipeGen_BlastSmelter.generateARecipe(matInfo);
}
diff --git a/src/Java/gtPlusPlus/core/material/MaterialStack.java b/src/Java/gtPlusPlus/core/material/MaterialStack.java
index f2f8ff4e5a..385940d999 100644
--- a/src/Java/gtPlusPlus/core/material/MaterialStack.java
+++ b/src/Java/gtPlusPlus/core/material/MaterialStack.java
@@ -32,6 +32,16 @@ public class MaterialStack {
intArr[1]=Integer.parseInt(arr[1]);
return intArr;
}
+
+ public ItemStack getValidStack(){
+ if (this.stackMaterial.getDust(1) == null){
+ if (this.stackMaterial.getCell(1) == null){
+ return null;
+ }
+ return this.stackMaterial.getCell(this.vAmount[0]);
+ }
+ return this.stackMaterial.getDust(this.vAmount[0]);
+ }
public ItemStack getDustStack(){
return this.stackMaterial.getDust(this.vAmount[0]);
diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
index a489c2d136..c5476f5f89 100644
--- a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
+++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
@@ -1,11 +1,12 @@
package gtPlusPlus.core.recipe;
+import gregtech.api.GregTech_API;
import gregtech.api.enums.*;
-import gregtech.api.util.GT_ModHandler;
-import gregtech.api.util.GT_OreDictUnificator;
+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.util.Utils;
import gtPlusPlus.core.util.fluid.FluidUtils;
import gtPlusPlus.core.util.item.ItemUtils;
@@ -35,6 +36,7 @@ public class RECIPES_GREGTECH {
autoclaveRecipes();
mixerRecipes();
macerationRecipes();
+ centrifugeRecipes();
addFuels();
}
@@ -278,7 +280,7 @@ public class RECIPES_GREGTECH {
try {
//Fli2BeF4 + Thorium TetraFluoride = Uranium233
CORE.RA.addLFTRRecipe(
- FluidUtils.getFluidStack("thoriumtetrafluoride", 400), //Fluid input (slot 1)
+ 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,
12000*20, //Time in ticks
@@ -399,6 +401,24 @@ public class RECIPES_GREGTECH {
}
+ private static void centrifugeRecipes(){
+ GT_Values.RA.addCentrifugeRecipe(
+ ItemUtils.getItemStackOfAmountFromOreDict("dustThorium", 8),
+ GT_Values.NI,
+ GT_Values.NF,
+ GT_Values.NF,
+ ELEMENT.getInstance().THORIUM232.getDust(2),
+ ELEMENT.getInstance().THORIUM.getDust(5),
+ ELEMENT.getInstance().URANIUM232.getDust(1),
+ GT_Values.NI,
+ GT_Values.NI,
+ GT_Values.NI,
+ new int[]{10000, 10000, 10},
+ 500*20,
+ 2000);
+
+ }
+
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);
@@ -485,6 +505,25 @@ public class RECIPES_GREGTECH {
ItemUtils.getItemStackOfAmountFromOreDict("pelletZirconium", 1),
ItemUtils.getItemStackOfAmountFromOreDict("dustZrCl4", 1));
}
-
+
+ public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3) {
+ aOutput1 = GT_OreDictUnificator.get(true, aOutput1);
+ aOutput2 = GT_OreDictUnificator.get(true, aOutput2);
+ if ((GT_Utility.isStackInvalid(aInput)) || (GT_Utility.isStackInvalid(aOutput1))){
+ return false;
+ }
+ if (GT_Utility.getContainerItem(aInput, false) == null) {
+
+ if (GregTech_API.sRecipeFile.get(ConfigCategories.Machines.maceration, aInput, true)) {
+ GT_Utility.addSimpleIC2MachineRecipe(aInput, GT_ModHandler.getMaceratorRecipeList(), null, new Object[] { aOutput1 });
+ }
+ GT_Values.RA.addPulveriserRecipe(aInput, new ItemStack[] {
+ aOutput1, aOutput2, aOutput3 },
+ new int[] {10000, 10000, 10000},
+ 400,
+ 2);
+ }
+ return true;
+ }
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_General.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_General.java
index 0f95c7e1d1..53ad2e3ba1 100644
--- a/src/Java/gtPlusPlus/core/recipe/RECIPES_General.java
+++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_General.java
@@ -24,7 +24,7 @@ public class RECIPES_General {
static String RECIPE_BronzePlate = "plateAnyBronze";
static ItemStack RECIPE_BasicCasingIC2;
static ItemStack OUTPUT_Workbench_Bronze = ItemUtils.getSimpleStack(Item.getItemFromBlock(ModBlocks.blockWorkbench));
- static String RECIPE_HydrogenDust = "dustHydrogen";
+ static ItemStack RECIPE_HydrogenDust = ItemUtils.getSimpleStack(ModItems.itemHydrogenBlob);
public static void RECIPES_LOAD(){
if (LoadedMods.Gregtech){
diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java
index c866b66e98..3f656ce9ad 100644
--- a/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java
+++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java
@@ -1,7 +1,6 @@
package gtPlusPlus.core.recipe;
import gregtech.api.enums.*;
-import gregtech.api.util.GT_ModHandler;
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.item.ItemUtils;
@@ -504,7 +503,12 @@ public class RECIPES_Machines {
RECIPE_IronPlatedBricks);
//Add recycle recipes for the Iron Plated Bricks
- GT_ModHandler.addPulverisationRecipe(RECIPE_IronPlatedBricks, ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dustIron", 6), ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dustClay", 2), true);
+ //GT_ModHandler.addPulverisationRecipe(RECIPE_IronPlatedBricks, ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dustIron", 6), ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dustClay", 2), true);
+ RECIPES_GREGTECH.addPulverisationRecipe(
+ RECIPE_IronPlatedBricks,
+ ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dustIron", 6),
+ ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dustClay", 2),
+ null);
GT_Values.RA.addArcFurnaceRecipe(RECIPE_IronPlatedBricks, new ItemStack[]{ItemUtils.getItemStackOfAmountFromOreDictNoBroken("ingotWroughtIron", 6), ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dustAsh", 2)}, new int[]{0}, 32*20, 32);
/*//Electrolyzer Frame Casing
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/fluid/GregtechFluidHandler.java b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/fluid/GregtechFluidHandler.java
index 6462b2f632..d50ce9a4c5 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/fluid/GregtechFluidHandler.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/fluid/GregtechFluidHandler.java
@@ -56,14 +56,14 @@ public class GregtechFluidHandler {
FluidUtils.addFluid("sulfuricApatite", "Sulfuric Apatite Mix", GT_Materials.SulfuricApatite, 4, 500, GT_OreDictUnificator.get(OrePrefixes.cell, GT_Materials.SulfuricApatite, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000);
generateIC2FluidCell("SulfuricApatite");
- FluidUtils.addFluid("uraniumHexafluoride", "Uranium Hexafluoride", GT_Materials.UraniumHexaFluoride, 4, 200, GT_OreDictUnificator.get(OrePrefixes.cell, GT_Materials.UraniumHexaFluoride, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000);
- generateIC2FluidCell("UraniumHexaFluoride");
+ //FluidUtils.addFluid("uraniumHexafluoride", "Uranium Hexafluoride", GT_Materials.UraniumHexaFluoride, 4, 200, GT_OreDictUnificator.get(OrePrefixes.cell, GT_Materials.UraniumHexaFluoride, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000);
+ //generateIC2FluidCell("Molten.UraniumHexaFluoride");
- FluidUtils.addFluid("uraniumTetrafluoride", "Uranium Tetrafluoride", GT_Materials.UraniumTetraFluoride, 4, 950, GT_OreDictUnificator.get(OrePrefixes.cell, GT_Materials.UraniumTetraFluoride, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000);
- generateIC2FluidCell("UraniumTetraFluoride");
+ //FluidUtils.addFluid("uraniumTetrafluoride", "Uranium Tetrafluoride", GT_Materials.UraniumTetraFluoride, 4, 950, GT_OreDictUnificator.get(OrePrefixes.cell, GT_Materials.UraniumTetraFluoride, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000);
+ //generateIC2FluidCell("UraniumTetraFluoride");
- FluidUtils.addFluid("thoriumTetrafluoride", "Thorium Tetrafluoride", GT_Materials.ThoriumTetraFluoride, 4, 1250, GT_OreDictUnificator.get(OrePrefixes.cell, GT_Materials.ThoriumTetraFluoride, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000);
- generateIC2FluidCell("ThoriumTetraFluoride");
+ //FluidUtils.addFluid("thoriumTetrafluoride", "Thorium Tetrafluoride", GT_Materials.ThoriumTetraFluoride, 4, 1250, GT_OreDictUnificator.get(OrePrefixes.cell, GT_Materials.ThoriumTetraFluoride, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000);
+ //generateIC2FluidCell("ThoriumTetraFluoride");
//Check for IHL Hydrogen Chloride
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_MultiTank.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_MultiTank.java
index dbf6569156..a1140f3777 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_MultiTank.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_MultiTank.java
@@ -75,10 +75,10 @@ extends GregtechMeta_MultiBlockBase {
aNBT.setInteger("mEfficiency", mEfficiency);
aNBT.setInteger("mPollution", mPollution);
aNBT.setInteger("mRuntime", mRuntime);
+ aNBT.setInteger("mCasingCount", countCasings());
aNBT.setLong("mFluidStored", fluidStored);
aNBT.setInteger("mStorageMultiplier", storageMultiplier);
aNBT.setLong("mMaxFluidStored", maximumFluidStorage);
- aNBT.setInteger("mCasingCount", multiblockCasingCount);
if (mOutputItems != null) for (int i = 0; i < mOutputItems.length; i++)
if (mOutputItems[i] != null) {
@@ -102,14 +102,13 @@ extends GregtechMeta_MultiBlockBase {
}
private short getStorageMultiplier(){
- int tempstorageMultiplier = (1*multiblockCasingCount);
+ int tempstorageMultiplier = (1*countCasings());
if (tempstorageMultiplier <= 0){
if (this != null){
if (this.getBaseMetaTileEntity() != null){
if (this.getBaseMetaTileEntity().getWorld() != null){
- Utils.LOG_INFO("Invalid Storage Multiplier. "+multiblockCasingCount);
- checkMachine(this.getBaseMetaTileEntity(), null);
- return 0;
+ Utils.LOG_INFO("Invalid Storage Multiplier. "+countCasings());
+ return (short) countCasings();
}
}
}
@@ -140,10 +139,10 @@ extends GregtechMeta_MultiBlockBase {
mEfficiency = aNBT.getInteger("mEfficiency");
mPollution = aNBT.getInteger("mPollution");
mRuntime = aNBT.getInteger("mRuntime");
+ multiblockCasingCount = aNBT.getInteger("mCasingCount");
fluidStored = aNBT.getLong("mFluidStored");
storageMultiplier = aNBT.getInteger("mStorageMultiplier");
maximumFluidStorage = aNBT.getLong("mMaxFluidStored");
- multiblockCasingCount = aNBT.getInteger("mCasingCount");
mOutputItems = new ItemStack[getAmountOfOutputs()];
for (int i = 0; i < mOutputItems.length; i++) mOutputItems[i] = GT_Utility.loadItem(aNBT, "mOutputItem" + i);
mOutputFluids = new FluidStack[getAmountOfOutputs()];
@@ -411,6 +410,64 @@ extends GregtechMeta_MultiBlockBase {
Utils.LOG_INFO("Casings Count: "+tAmount+" Valid Multiblock: "+(tAmount >= 16)+" Tank Storage Capacity:"+getMaximumTankStorage()+"L");
return tAmount >= 16;
}
+
+ public int countCasings() {
+ if (this.getBaseMetaTileEntity().getWorld() == null){
+ return 0;
+ }
+ int xDir = ForgeDirection.getOrientation(this.getBaseMetaTileEntity().getBackFacing()).offsetX;
+ int zDir = ForgeDirection.getOrientation(this.getBaseMetaTileEntity().getBackFacing()).offsetZ;
+ if (!this.getBaseMetaTileEntity().getAirOffset(xDir, 0, zDir)) {
+ Utils.LOG_WARNING("Must be hollow.");
+ return 0;
+ }
+ int tAmount = 0;
+ for (int i = -1; i < 2; i++) {
+ for (int j = -1; j < 2; j++) {
+ for (int h = -1; h < 19; h++) {
+ if ((h != 0) || (((xDir + i != 0) || (zDir + j != 0)) && ((i != 0) || (j != 0)))) {
+ IGregTechTileEntity tTileEntity = this.getBaseMetaTileEntity().getIGregTechTileEntityOffset(xDir + i, h, zDir + j);
+ if ((!addMaintenanceToMachineList(tTileEntity, 68)) && (!addInputToMachineList(tTileEntity, 68)) && (!addOutputToMachineList(tTileEntity, 68)) && (!addEnergyInputToMachineList(tTileEntity, 68))) {
+ if (this.getBaseMetaTileEntity().getBlockOffset(xDir + i, h, zDir + j) != ModBlocks.blockCasingsMisc) {
+ if (h < 3){
+ Utils.LOG_WARNING("Casing Expected.");
+ return 0;
+ }
+ else if (h >= 3){
+ //Utils.LOG_WARNING("Your Multitank can be 20 blocks tall.");
+ }
+ }
+ if (this.getBaseMetaTileEntity().getMetaIDOffset(xDir + i, h, zDir + j) != 11) {
+ if (h < 3){
+ Utils.LOG_WARNING("Wrong Meta.");
+ return 0;
+ }
+ else if (h >= 3){
+ //Utils.LOG_WARNING("Your Multitank can be 20 blocks tall.");
+ }
+ }
+ if (h < 3){
+ tAmount++;
+ }
+ else if (h >= 3){
+ if (this.getBaseMetaTileEntity().getBlockOffset(xDir + i, h, zDir + j) == Blocks.air || this.getBaseMetaTileEntity().getBlockOffset(xDir + i, h, zDir + j).getUnlocalizedName().contains("residual")){
+ Utils.LOG_WARNING("Found air");
+ }
+ else {
+ Utils.LOG_WARNING("Layer "+(h+2)+" is complete. Adding "+(64000*9)+"L storage to the tank.");
+ tAmount++;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ multiblockCasingCount = tAmount;
+ Utils.LOG_INFO("Your Multitank can be 20 blocks tall.");
+ Utils.LOG_INFO("Casings Count: "+tAmount+" Valid Multiblock: "+(tAmount >= 16)+" Tank Storage Capacity:"+getMaximumTankStorage()+"L");
+ return tAmount;
+ }
@Override
public int getMaxEfficiency(ItemStack aStack) {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java
index 8da9699c8e..2e1e259b4e 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java
@@ -3,8 +3,7 @@ package gtPlusPlus.xmod.gregtech.loaders;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.ItemList;
import gtPlusPlus.core.lib.CORE;
-import gtPlusPlus.core.material.Material;
-import gtPlusPlus.core.material.MaterialStack;
+import gtPlusPlus.core.material.*;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.item.ItemUtils;
@@ -30,6 +29,19 @@ public class RecipeGen_BlastSmelter implements Runnable{
//Add a Blast Smelting Recipe, Let's go!
ItemStack tStack;
if (null != (tStack = M.getDust(1))) {
+
+ Material[] badMaterials = {
+ ALLOY.THORIUM_HEXAFLUORIDE,
+ ALLOY.THORIUM_TETRAFLUORIDE,
+ ALLOY.BLOODSTEEL,
+ ALLOY.LiFBeF2ThF4UF4,
+ ALLOY.LiFBeF2ZrF4U235
+ };
+ for (Material R : badMaterials){
+ if (M == R){
+ return;
+ }
+ }
//Prepare some Variables
ItemStack[] components;
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java
index c0122cbcf5..6f0697365d 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java
@@ -1,6 +1,7 @@
package gtPlusPlus.xmod.gregtech.loaders;
import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.ItemList;
import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.item.ItemUtils;
@@ -90,6 +91,82 @@ public class RecipeGen_DustGeneration implements Runnable{
else {
Utils.LOG_WARNING("4 Small dust from 1 Dust Recipe: "+material.getLocalizedName()+" - Failed");
}
+
+ //Melting Shapes to fluid
+ if (GT_Values.RA.addFluidExtractionRecipe(normalDust, //Input
+ null, //Input 2
+ material.getFluid(144), //Fluid Output
+ 0, //Chance
+ 1*20, //Duration
+ 16 //Eu Tick
+ )){
+ Utils.LOG_WARNING("144l fluid extractor from 1 Dust Recipe: "+material.getLocalizedName()+" - Success");
+ }
+ else {
+ Utils.LOG_WARNING("144l fluid extractor from 1 Dust Recipe: "+material.getLocalizedName()+" - Failed");
+ }
+ if (GT_Values.RA.addFluidExtractionRecipe(material.getPlate(1), //Input
+ null, //Input 2
+ material.getFluid(144), //Fluid Output
+ 0, //Chance
+ 1*20, //Duration
+ 16 //Eu Tick
+ )){
+ Utils.LOG_WARNING("144l fluid extractor from 1 plate Recipe: "+material.getLocalizedName()+" - Success");
+ }
+ else {
+ Utils.LOG_WARNING("144l fluid extractor from 1 plate Recipe: "+material.getLocalizedName()+" - Failed");
+ }
+ if (GT_Values.RA.addFluidExtractionRecipe(material.getNugget(1), //Input
+ null, //Input 2
+ material.getFluid(16), //Fluid Output
+ 0, //Chance
+ 1*20, //Duration
+ 16 //Eu Tick
+ )){
+ Utils.LOG_WARNING("16l fluid extractor from 1 nugget Recipe: "+material.getLocalizedName()+" - Success");
+ }
+ else {
+ Utils.LOG_WARNING("16l fluid extractor from 1 nugget Recipe: "+material.getLocalizedName()+" - Failed");
+ }
+
+ //Making Shapes from fluid
+ if (GT_Values.RA.addFluidSolidifierRecipe(
+ ItemList.Shape_Mold_Ingot.get(1), //Item Shape
+ material.getFluid(144), //Fluid Input
+ material.getIngot(1), //output
+ 1*20, //Duration
+ 16 //Eu Tick
+ )){
+ Utils.LOG_WARNING("144l fluid molder for 1 ingot Recipe: "+material.getLocalizedName()+" - Success");
+ }
+ else {
+ Utils.LOG_WARNING("144l fluid molder for 1 ingot Recipe: "+material.getLocalizedName()+" - Failed");
+ }
+ if (GT_Values.RA.addFluidSolidifierRecipe(
+ ItemList.Shape_Mold_Plate.get(1), //Item Shape
+ material.getFluid(144), //Fluid Input
+ material.getPlate(1), //output
+ 1*20, //Duration
+ 16 //Eu Tick
+ )){
+ Utils.LOG_WARNING("144l fluid molder for 1 plate Recipe: "+material.getLocalizedName()+" - Success");
+ }
+ else {
+ Utils.LOG_WARNING("144l fluid molder for 1 plate Recipe: "+material.getLocalizedName()+" - Failed");
+ }
+ if (GT_Values.RA.addFluidSolidifierRecipe(
+ ItemList.Shape_Mold_Nugget.get(1), //Item Shape
+ material.getFluid(16), //Fluid Input
+ material.getNugget(1), //output
+ 1*20, //Duration
+ 16 //Eu Tick
+ )){
+ Utils.LOG_WARNING("16l fluid molder for 1 nugget Recipe: "+material.getLocalizedName()+" - Success");
+ }
+ else {
+ Utils.LOG_WARNING("16l fluid molder for 1 nugget Recipe: "+material.getLocalizedName()+" - Failed");
+ }
//Is this a composite?
if (inputStacks != null){