diff options
author | Johann Bernhardt <johann.bernhardt@tum.de> | 2021-12-13 23:39:55 +0100 |
---|---|---|
committer | Johann Bernhardt <johann.bernhardt@tum.de> | 2021-12-13 23:39:55 +0100 |
commit | a2a9ad400f23726885020f1a77627f9561487948 (patch) | |
tree | 9116c76f46d49d951ac63442af335a0bd6016052 /src/main/java/gtPlusPlus/core | |
parent | 20b5d2932ef44e1c96104d6ec0528012f5c83d21 (diff) | |
parent | 868ddab78797403d58dbc84d357f792926e94f42 (diff) | |
download | GT5-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')
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){ |