aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/core
diff options
context:
space:
mode:
authorJohann Bernhardt <johann.bernhardt@tum.de>2021-12-13 23:39:55 +0100
committerJohann Bernhardt <johann.bernhardt@tum.de>2021-12-13 23:39:55 +0100
commita2a9ad400f23726885020f1a77627f9561487948 (patch)
tree9116c76f46d49d951ac63442af335a0bd6016052 /src/main/java/gtPlusPlus/core
parent20b5d2932ef44e1c96104d6ec0528012f5c83d21 (diff)
parent868ddab78797403d58dbc84d357f792926e94f42 (diff)
downloadGT5-Unofficial-a2a9ad400f23726885020f1a77627f9561487948.tar.gz
GT5-Unofficial-a2a9ad400f23726885020f1a77627f9561487948.tar.bz2
GT5-Unofficial-a2a9ad400f23726885020f1a77627f9561487948.zip
Merge tag '1.7.20' into unified-build-script2
# Conflicts: # build.properties # src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluorite.java
Diffstat (limited to 'src/main/java/gtPlusPlus/core')
-rw-r--r--src/main/java/gtPlusPlus/core/handler/events/GeneralTooltipEventHandler.java16
-rw-r--r--src/main/java/gtPlusPlus/core/item/ModItems.java7
-rw-r--r--src/main/java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java8
-rw-r--r--src/main/java/gtPlusPlus/core/material/MISC_MATERIALS.java4
-rw-r--r--src/main/java/gtPlusPlus/core/material/MaterialGenerator.java57
-rw-r--r--src/main/java/gtPlusPlus/core/material/nuclear/FLUORIDES.java2
-rw-r--r--src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java114
-rw-r--r--src/main/java/gtPlusPlus/core/recipe/RECIPES_RareEarthProcessing.java49
-rw-r--r--src/main/java/gtPlusPlus/core/util/minecraft/FluidUtils.java77
9 files changed, 217 insertions, 117 deletions
diff --git a/src/main/java/gtPlusPlus/core/handler/events/GeneralTooltipEventHandler.java b/src/main/java/gtPlusPlus/core/handler/events/GeneralTooltipEventHandler.java
index fda7760607..10dea8a7bf 100644
--- a/src/main/java/gtPlusPlus/core/handler/events/GeneralTooltipEventHandler.java
+++ b/src/main/java/gtPlusPlus/core/handler/events/GeneralTooltipEventHandler.java
@@ -6,8 +6,10 @@ import gtPlusPlus.GTplusplus;
import gtPlusPlus.GTplusplus.INIT_PHASE;
import gtPlusPlus.core.block.ModBlocks;
import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.sys.KeyboardUtils;
+import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
@@ -22,7 +24,7 @@ public class GeneralTooltipEventHandler {
@SubscribeEvent
public void onItemTooltip(ItemTooltipEvent event){
-
+
if (GTplusplus.CURRENT_LOAD_PHASE != INIT_PHASE.STARTED && GTplusplus.CURRENT_LOAD_PHASE != INIT_PHASE.SERVER_START) {
return;
}
@@ -68,8 +70,16 @@ public class GeneralTooltipEventHandler {
event.toolTip.add(EnumChatFormatting.GOLD+"Capacity: "+EnumChatFormatting.AQUA+"128000L");
}
}
-
-
+
+ // Custom Flasks
+
+ if (GregtechItemList.VOLUMETRIC_FLASK_8k.hasBeenSet() && event.itemStack.getItem() == GregtechItemList.VOLUMETRIC_FLASK_8k.getItem()) {
+ event.toolTip.add("Max Capacity: "+MathUtils.formatNumbers(8000)+"L");
+ }
+ if (GregtechItemList.VOLUMETRIC_FLASK_32k.hasBeenSet() && event.itemStack.getItem() == GregtechItemList.VOLUMETRIC_FLASK_32k.getItem()) {
+ event.toolTip.add("Max Capacity: "+MathUtils.formatNumbers(32000)+"L");
+ }
+
if (CORE.ConfigSwitches.enableAnimatedTurbines) {
boolean shift = false;
diff --git a/src/main/java/gtPlusPlus/core/item/ModItems.java b/src/main/java/gtPlusPlus/core/item/ModItems.java
index 4c6f0dc712..47278c559d 100644
--- a/src/main/java/gtPlusPlus/core/item/ModItems.java
+++ b/src/main/java/gtPlusPlus/core/item/ModItems.java
@@ -523,6 +523,9 @@ public final class ModItems {
MaterialGenerator.generateNuclearMaterial(ELEMENT.getInstance().POLONIUM210, false);
MaterialGenerator.generateNuclearMaterial(ELEMENT.getInstance().AMERICIUM241, false);
+ if (!CORE.GTNH) {
+ MaterialGenerator.generateOreMaterialWithAllExcessComponents(ELEMENT.getInstance().TRINIUM);
+ }
//Custom Materials that will have standalone refinery processes
MaterialGenerator.generate(ELEMENT.STANDALONE.ADVANCED_NITINOL, false);
@@ -534,8 +537,8 @@ public final class ModItems {
//Custom Materials that are from Runescape
MaterialGenerator.generate(ELEMENT.STANDALONE.BLACK_METAL);
MaterialGenerator.generate(ELEMENT.STANDALONE.WHITE_METAL);
- MaterialGenerator.generate(ELEMENT.STANDALONE.GRANITE, false, false);
- MaterialGenerator.generate(ELEMENT.STANDALONE.RUNITE, false);
+ MaterialGenerator.generateOreMaterialWithAllExcessComponents(ELEMENT.STANDALONE.GRANITE);
+ MaterialGenerator.generateOreMaterialWithAllExcessComponents(ELEMENT.STANDALONE.RUNITE);
MaterialGenerator.generate(ELEMENT.STANDALONE.DRAGON_METAL, false);
MISC_MATERIALS.run();
diff --git a/src/main/java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java b/src/main/java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java
index dfc85c533b..8dd2cd1187 100644
--- a/src/main/java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java
+++ b/src/main/java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java
@@ -243,10 +243,10 @@ public class MilledOreProcessing extends ItemPackage {
//milledMonazite TODO
registerOreDataForMilledType(
MonaziteFlotationFroth,
- ELEMENT.getInstance().ERBIUM, 96,
- ELEMENT.getInstance().LANTHANUM, 96,
- ELEMENT.getInstance().PRASEODYMIUM, 96,
- ELEMENT.getInstance().EUROPIUM, 32
+ ELEMENT.getInstance().ERBIUM, 64,
+ ELEMENT.getInstance().LANTHANUM, 32,
+ ELEMENT.getInstance().LUTETIUM, 16,
+ ELEMENT.getInstance().EUROPIUM, 8
);
diff --git a/src/main/java/gtPlusPlus/core/material/MISC_MATERIALS.java b/src/main/java/gtPlusPlus/core/material/MISC_MATERIALS.java
index aaee1cc790..0b93e7dd9c 100644
--- a/src/main/java/gtPlusPlus/core/material/MISC_MATERIALS.java
+++ b/src/main/java/gtPlusPlus/core/material/MISC_MATERIALS.java
@@ -138,8 +138,8 @@ public final class MISC_MATERIALS {
new MaterialStack(MaterialUtils.generateMaterialFromGtENUM(Materials.NetherQuartz), 1),
new MaterialStack(MaterialUtils.generateMaterialFromGtENUM(Materials.Galena), 1),
new MaterialStack(MaterialUtils.generateMaterialFromGtENUM(Materials.Chalcopyrite), 1),
- new MaterialStack(MaterialUtils.generateMaterialFromGtENUM(Materials.Cobaltite), 1),
- new MaterialStack(ELEMENT.STANDALONE.GRANITE, 1)
+ new MaterialStack(ORES.CRYOLITE, 1),
+ new MaterialStack(ELEMENT.getInstance().YTTRIUM, 1)
});
public static final Material RARE_EARTH_MID = new Material(
diff --git a/src/main/java/gtPlusPlus/core/material/MaterialGenerator.java b/src/main/java/gtPlusPlus/core/material/MaterialGenerator.java
index 8425ed89be..d1ea784b81 100644
--- a/src/main/java/gtPlusPlus/core/material/MaterialGenerator.java
+++ b/src/main/java/gtPlusPlus/core/material/MaterialGenerator.java
@@ -46,6 +46,7 @@ import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_DustGeneration;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Extruder;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_FluidCanning;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Fluids;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Fluorite;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_MaterialProcessing;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_MetalRecipe;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Ore;
@@ -397,13 +398,67 @@ public class MaterialGenerator {
temp = new BaseItemPurifiedDust(matInfo);
Logger.MATERIALS("Generated all ore components for "+matInfo.getLocalizedName()+", now generating processing recipes.");
- new RecipeGen_Ore(matInfo);
+
+ if (matInfo == FLUORIDES.FLUORITE){
+ new RecipeGen_Fluorite(matInfo);
+ }
+ else {
+ new RecipeGen_Ore(matInfo);
+ }
} catch (final Throwable t){
Logger.MATERIALS("[Error] "+(matInfo != null ? matInfo.getLocalizedName() : "Null Material")+" failed to generate.");
t.printStackTrace();
}
}
+
+ public static boolean generateOreMaterialWithAllExcessComponents(final Material matInfo){
+ try {
+ if (matInfo == null){
+ Logger.DEBUG_MATERIALS("Invalid Material while constructing null material.");
+ return false;
+ }
+ final short[] C = matInfo.getRGBA();
+ final Integer Colour = Utils.rgbtoHexValue(C[0], C[1], C[2]);
+
+ tempBlock = new BlockBaseOre(matInfo, BlockTypes.ORE, Colour.intValue());
+ tempBlock = new BlockBaseModular(matInfo,BlockTypes.STANDARD);
+ temp = new BaseItemIngot(matInfo);
+ temp = new BaseItemDust(matInfo);
+ temp = new BaseItemNugget(matInfo);
+ temp = new BaseItemPlate(matInfo);
+ temp = new BaseItemPlateDouble(matInfo);
+
+
+ temp = new BaseItemCrushedOre(matInfo);
+ temp = new BaseItemCentrifugedCrushedOre(matInfo);
+ temp = new BaseItemPurifiedCrushedOre(matInfo);
+ temp = new BaseItemImpureDust(matInfo);
+ temp = new BaseItemPurifiedDust(matInfo);
+
+ Logger.MATERIALS("Generated all ore & base components for "+matInfo.getLocalizedName()+", now generating processing recipes.");
+
+ new RecipeGen_Ore(matInfo, true);
+ new RecipeGen_AlloySmelter(matInfo);
+ new RecipeGen_Assembler(matInfo);
+ new RecipeGen_BlastSmelter(matInfo);
+ new RecipeGen_MetalRecipe(matInfo);
+ new RecipeGen_Extruder(matInfo);
+ new RecipeGen_Fluids(matInfo);
+ new RecipeGen_Plates(matInfo);
+ new RecipeGen_ShapedCrafting(matInfo);
+ new RecipeGen_MaterialProcessing(matInfo);
+ new RecipeGen_DustGeneration(matInfo);
+ new RecipeGen_Recycling(matInfo);
+ return true;
+ }
+ catch (final Throwable t){
+ Logger.MATERIALS(""+matInfo.getLocalizedName()+" failed to generate.");
+ t.printStackTrace();
+ return false;
+ }
+
+ }
}
diff --git a/src/main/java/gtPlusPlus/core/material/nuclear/FLUORIDES.java b/src/main/java/gtPlusPlus/core/material/nuclear/FLUORIDES.java
index 5872587872..d5c6e4a6bf 100644
--- a/src/main/java/gtPlusPlus/core/material/nuclear/FLUORIDES.java
+++ b/src/main/java/gtPlusPlus/core/material/nuclear/FLUORIDES.java
@@ -10,7 +10,7 @@ import gtPlusPlus.core.material.state.MaterialState;
public class FLUORIDES {
public static final Material FLUORITE = new Material(
- "Fluorite", //Material Name
+ "Fluorite (F)", //Material Name
MaterialState.ORE, //State
null, //Material Colour
Materials.Fluorine.mMeltingPoint, //Melting Point in C
diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
index 5156b938db..3d0e6aebfd 100644
--- a/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
+++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
@@ -390,6 +390,28 @@ public class RECIPES_GREGTECH {
20 * 20,
MaterialUtils.getVoltageForTier(aBotmiumTier-2),
6);
+
+
+ //Refine GT HF into GT++ HF
+ if (FluidUtils.doesHydrofluoricAcidGtExist()) {
+ CORE.RA.addChemicalPlantRecipe(
+ new ItemStack[] {
+ CI.getNumberedAdvancedCircuit(22),
+ },
+ new FluidStack[] {
+ FluidUtils.getHydrofluoricAcid(2000),
+ FluidUtils.getHydrofluoricAcidGT(5000)
+ },
+ new ItemStack[] {
+
+ },
+ new FluidStack[] {
+ FluidUtils.getHydrofluoricAcid(6000)
+ },
+ 30 * 20,
+ 480,
+ 3);
+ }
}
@@ -1268,30 +1290,6 @@ public class RECIPES_GREGTECH {
2 * 20,
500); // EU
- // CaF2 + H2SO4 → CaSO4(solid) + 2 HF
- FluidStack aGregtechHydro = FluidUtils.getFluidStack("hydrofluoricacid_gt5u", 16000);
- if (aGregtechHydro == null) {
- aGregtechHydro = FluidUtils.getFluidStack("hydrofluoricacid", 16000);
- }
-
- CORE.RA.addDehydratorRecipe(
- new ItemStack[] {
- CI.getNumberedAdvancedCircuit(5),
- ItemUtils.getItemStackOfAmountFromOreDict("dustFluorite", 37),
- },
- FluidUtils.getFluidStack("sulfuricacid", 56 * 144),
- aGregtechHydro, // Fluid output (slot 2)
- new ItemStack[] {
- ItemUtils.getItemStackOfAmountFromOreDict("dustCalciumSulfate", 30),
- ItemUtils.getItemStackOfAmountFromOreDict("dustSilver", 1),
- ItemUtils.getItemStackOfAmountFromOreDict("dustGold", 2),
- ItemUtils.getItemStackOfAmountFromOreDict("dustTin", 1),
- ItemUtils.getItemStackOfAmountFromOreDict("dustCopper", 2)
- },
- new int[] { 10000, 100, 100, 300, 200 },
- 10 * 60 * 20,
- 230); // EU
-
CORE.RA.addDehydratorRecipe(
new ItemStack[] {
@@ -1662,19 +1660,35 @@ public class RECIPES_GREGTECH {
* so if you dissolve aparite in sulphuric acid you'll get a mixture of
* SO2, H2O, HF and HCl
*/
- final FluidStack[] apatiteOutput = { FluidUtils.getFluidStack("sulfurousacid", 3800),
- FluidUtils.getFluidStack("hydrogenchloride", 1000), FluidUtils.getFluidStack("hydrofluoricacid", 400) };
- GT_Values.RA.addDistillationTowerRecipe(FluidUtils.getFluidStack("sulfuricapatite", 5200), apatiteOutput, null,
- 45 * 20, 256);
+ final FluidStack[] apatiteOutput = {
+ FluidUtils.getFluidStack("sulfurousacid", 3800),
+ FluidUtils.getFluidStack("hydrogenchloride", 1000),
+ FluidUtils.getFluidStack("hydrofluoricacid", 400) };
+ GT_Values.RA.addDistillationTowerRecipe(
+ FluidUtils.getFluidStack("sulfuricapatite", 5200),
+ apatiteOutput, null,
+ 45 * 20,
+ 120);
- final FluidStack[] sulfurousacidOutput = { FluidUtils.getFluidStack("sulfurdioxide", 500),
+ final FluidStack[] sulfurousacidOutput = {
+ FluidUtils.getFluidStack("sulfurdioxide", 500),
FluidUtils.getFluidStack("water", 500) };
- GT_Values.RA.addDistillationTowerRecipe(FluidUtils.getFluidStack("sulfurousacid", 1000), sulfurousacidOutput,
- null, 10 * 20, 60);
+ GT_Values.RA.addDistillationTowerRecipe(
+ FluidUtils.getFluidStack("sulfurousacid", 1000),
+ sulfurousacidOutput,
+ null,
+ 10 * 20,
+ 60);
- final FluidStack[] sulfurdioxideOutput = { FluidUtils.getFluidStack("oxygen", 144 * 2) };
- GT_Values.RA.addDistillationTowerRecipe(FluidUtils.getFluidStack("sulfurdioxide", 144 * 3), sulfurdioxideOutput,
- ItemUtils.getItemStackOfAmountFromOreDict("dustSulfur", 1), 5 * 20, 30);
+ final FluidStack[] sulfurdioxideOutput = {
+ FluidUtils.getFluidStack("oxygen", 2000)
+ };
+ GT_Values.RA.addDistillationTowerRecipe(
+ FluidUtils.getFluidStack("sulfurdioxide", 144 * 3),
+ sulfurdioxideOutput,
+ ItemUtils.getItemStackOfAmountFromOreDict("dustSulfur", 1),
+ 5 * 20,
+ 30);
}
private static void addFuels() {
@@ -1735,16 +1749,6 @@ public class RECIPES_GREGTECH {
}
private static void chemicalBathRecipes() {
-
- GT_Values.RA.addChemicalBathRecipe(
- FLUORIDES.FLUORITE.getCrushed(2),
- FluidUtils.getFluidStack("hydrogen", 2000),
- FLUORIDES.FLUORITE.getCrushedPurified(8),
- FLUORIDES.FLUORITE.getDustImpure(4),
- FLUORIDES.FLUORITE.getDustPurified(2),
- new int[] { 10000, 5000, 1000 },
- 30 * 20,
- 240);
}
@@ -1787,25 +1791,13 @@ public class RECIPES_GREGTECH {
10 * 20);
GT_Values.RA.addChemicalRecipe(
- ItemUtils.getItemStackOfAmountFromOreDict("dustApatite", 16),
- null,
- FluidUtils.getFluidStack("sulfuricacid", 144 * 32),
- FluidUtils.getFluidStack("sulfuricapatite", 144 * 8),
- ItemUtils.getItemStackOfAmountFromOreDict("dustSmallSulfur", 1),
+ CI.getNumberedAdvancedCircuit(21),
+ ItemUtils.getItemStackOfAmountFromOreDict("dustApatite", 32),
+ FluidUtils.getFluidStack("sulfuricacid", 4000),
+ FluidUtils.getFluidStack("sulfuricapatite", 8000),
+ ItemUtils.getItemStackOfAmountFromOreDict("dustSmallSulfur", 8),
20 * 20);
- ItemStack temp_GT5u_SA = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cellHydrofluoricAcid_GT5U", 5);
- if (temp_GT5u_SA != null) {
- //Refine GT HF into GT++ HF
- GT_Values.RA.addChemicalRecipe(
- ItemUtils.getItemStackOfAmountFromOreDict("cellHydrofluoricAcid", 2),
- temp_GT5u_SA,
- null, // Fluid Input
- FluidUtils.getFluidStack("hydrofluoricacid", 6000), // Fluid Output
- CI.emptyCells(7),
- 2 * 20);
- }
-
}
private static void blastFurnaceRecipes() {
diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_RareEarthProcessing.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_RareEarthProcessing.java
index 97636e9e65..864d0bcca8 100644
--- a/src/main/java/gtPlusPlus/core/recipe/RECIPES_RareEarthProcessing.java
+++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_RareEarthProcessing.java
@@ -168,34 +168,47 @@ public class RECIPES_RareEarthProcessing {
GT_Values.RA.addChemicalBathRecipe(
ItemUtils.getSimpleStack(aRareEarth, 3),
FluidUtils.getFluidStack(aSulfuric, 1000),
- RARE_EARTH_LOW.getCrushed(1),
- RARE_EARTH_LOW.getCrushed(1),
- RARE_EARTH_LOW.getCrushed(1),
- new int[] {10000, 10000, 9000},
+ RARE_EARTH_LOW.getCrushed(2),
+ RARE_EARTH_LOW.getCrushed(2),
+ RARE_EARTH_LOW.getCrushed(2),
+ new int[] {10000, 10000, 10000},
20 * 30,
- (int) GT_Values.V[1]);
+ MaterialUtils.getVoltageForTier(1));
// HV Rare Earth
GT_Values.RA.addChemicalBathRecipe(
ItemUtils.getSimpleStack(aRareEarth, 6),
- FluidUtils.getFluidStack(aHydrocholric, 3000),
- RARE_EARTH_MID.getCrushed(2),
- RARE_EARTH_MID.getCrushed(2),
- RARE_EARTH_MID.getCrushed(2),
+ FluidUtils.getFluidStack(aHydrocholric, 2000),
+ RARE_EARTH_MID.getCrushed(4),
+ RARE_EARTH_MID.getCrushed(4),
+ RARE_EARTH_MID.getCrushed(4),
new int[] {10000, 9000, 8000},
- 20 * 60,
- (int) GT_Values.V[3]);
+ 20 * 30,
+ MaterialUtils.getVoltageForTier(3));
// IV Rare Earth
GT_Values.RA.addChemicalBathRecipe(
ItemUtils.getSimpleStack(aRareEarth, 9),
- FluidUtils.getFluidStack(aNitric, 6000),
- RARE_EARTH_HIGH.getCrushed(3),
- RARE_EARTH_HIGH.getCrushed(3),
- RARE_EARTH_HIGH.getCrushed(3),
- new int[] {9000, 8000, 7000},
- 20 * 90,
- (int) GT_Values.V[5]);
+ FluidUtils.getHydrofluoricAcid(3000),
+ RARE_EARTH_HIGH.getCrushed(6),
+ RARE_EARTH_HIGH.getCrushed(6),
+ RARE_EARTH_HIGH.getCrushed(6),
+ new int[] {10000, 9000, 8000},
+ 20 * 30,
+ MaterialUtils.getVoltageForTier(5));
+
+ if (FluidUtils.doesHydrofluoricAcidGtExist()) {
+ // IV Rare Earth
+ GT_Values.RA.addChemicalBathRecipe(
+ ItemUtils.getSimpleStack(aRareEarth, 9),
+ FluidUtils.getHydrofluoricAcidGT(6000),
+ RARE_EARTH_HIGH.getCrushed(6),
+ RARE_EARTH_HIGH.getCrushed(6),
+ RARE_EARTH_HIGH.getCrushed(6),
+ new int[] {9000, 8000, 7000},
+ 20 * 30,
+ MaterialUtils.getVoltageForTier(5));
+ }
}
diff --git a/src/main/java/gtPlusPlus/core/util/minecraft/FluidUtils.java b/src/main/java/gtPlusPlus/core/util/minecraft/FluidUtils.java
index a6bd50ff17..73fa919731 100644
--- a/src/main/java/gtPlusPlus/core/util/minecraft/FluidUtils.java
+++ b/src/main/java/gtPlusPlus/core/util/minecraft/FluidUtils.java
@@ -1,5 +1,7 @@
package gtPlusPlus.core.util.minecraft;
+import java.util.HashMap;
+
import gregtech.api.enums.Dyes;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
@@ -24,7 +26,9 @@ import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.IFluidContainerItem;
public class FluidUtils {
-
+
+ private static HashMap<String, Fluid> sFluidCache = new HashMap<String, Fluid>();
+
public static FluidStack getWater(final int amount){
return FluidUtils.getFluidStack("water", amount);
}
@@ -87,44 +91,67 @@ public class FluidUtils {
return FluidUtils.getFluidStack("ic2uumatter", amount);
}
- public static FluidStack getFluidStack(final String fluidName, final int amount){
- Logger.WARNING("Trying to get a fluid stack of "+fluidName);
- try {
- FluidStack x = FluidRegistry.getFluidStack(fluidName, amount);
- return x != null ? x.copy() : null;
+ public static FluidStack getHydrofluoricAcid(int amount) {
+ return FluidUtils.getFluidStack("hydrofluoricacid", amount);
+ }
+
+ public static Fluid sGregtechHydrofluoricAcid = null;
+
+ public static FluidStack getHydrofluoricAcidGT(int amount) {
+ if (sGregtechHydrofluoricAcid == null) {
+ FluidStack aGTHF = FluidUtils.getFluidStack("hydrofluoricacid_gt5u", 1);
+ sGregtechHydrofluoricAcid = aGTHF != null ? aGTHF.getFluid() : getHydrofluoricAcid(1).getFluid();
}
- catch (final Throwable e){
- return null;
+ return FluidUtils.getFluidStack(sGregtechHydrofluoricAcid, amount);
+ }
+
+ public static boolean doesHydrofluoricAcidGtExist() {
+ if (sGregtechHydrofluoricAcid == null) {
+ getHydrofluoricAcidGT(1);
}
-
+ return sGregtechHydrofluoricAcid != null && sGregtechHydrofluoricAcid != getHydrofluoricAcid(1).getFluid();
}
-
- public static FluidStack getFluidStack(final FluidStack vmoltenFluid, final int fluidAmount) {
- Logger.WARNING("Trying to get a fluid stack of "+vmoltenFluid.getFluid().getName());
- try {
- FluidStack x = FluidRegistry.getFluidStack(vmoltenFluid.getFluid().getName(), fluidAmount);
- return x != null ? x.copy() : null;
+
+ private static FluidStack createFluidStack(Fluid aFluid, int aAmount) {
+ if (aFluid != null) {
+ return new FluidStack(aFluid, aAmount);
}
- catch (final Throwable e){
- return null;
+ return null;
+ }
+
+ public static FluidStack getFluidStack(final String aFluidName, final int aAmount){
+ Fluid aFluid = sFluidCache.get(aFluidName);
+ if (aFluid != null) {
+ return createFluidStack(aFluid, aAmount);
}
+ else {
+ Fluid aLookupFluid = FluidRegistry.getFluid(aFluidName);
+ if (aLookupFluid != null) {
+ sFluidCache.put(aFluidName, aLookupFluid);
+ return createFluidStack(aLookupFluid, aAmount);
+ }
+ }
+ return null;
}
- public static FluidStack getFluidStack(final Fluid vFluid, final int fluidAmount) {
- Logger.WARNING("Trying to get a fluid stack of "+vFluid.getName());
- try {
- FluidStack x = FluidRegistry.getFluidStack(vFluid.getName(), fluidAmount);
- return x != null ? x.copy() : null;
+ public static FluidStack getFluidStack(final FluidStack aFluidStack, final int aAmount) {
+ if (aFluidStack == null) {
+ return null;
}
- catch (final Throwable e){
+ return new FluidStack(aFluidStack, aAmount);
+ }
+
+ public static FluidStack getFluidStack(final Fluid aFluid, final int aAmount) {
+ if (aFluid == null) {
return null;
}
+ return new FluidStack(aFluid, aAmount);
}
public static FluidStack[] getFluidStackArray(final String fluidName, final int amount){
Logger.WARNING("Trying to get a fluid stack of "+fluidName);
try {
- final FluidStack[] singleFluid = {FluidRegistry.getFluidStack(fluidName, amount)};
+ final FluidStack[] singleFluid = {getFluidStack(fluidName, amount)};
return singleFluid;
}
catch (final Throwable e){
@@ -136,7 +163,7 @@ public class FluidUtils {
public static FluidStack[] getFluidStackArray(final FluidStack fluidName, final int amount){
Logger.WARNING("Trying to get a fluid stack of "+fluidName);
try {
- final FluidStack[] singleFluid = {FluidRegistry.getFluidStack(fluidName.getLocalizedName(), amount)};
+ final FluidStack[] singleFluid = {getFluidStack(fluidName, amount)};
return singleFluid;
}
catch (final Throwable e){