diff options
author | Draknyte1 <Draknyte1@hotmail.com> | 2016-11-06 19:32:27 +1000 |
---|---|---|
committer | Draknyte1 <Draknyte1@hotmail.com> | 2016-11-06 19:32:27 +1000 |
commit | cbe0e497be8e466c380a5b4fa781b314ede9ada3 (patch) | |
tree | b85848b432adf458e3abda466ee46d9dfc3e454b /src/Java/gtPlusPlus/core/util/fluid | |
parent | c40416b036c0e89451e1558253ccf07bbee028d0 (diff) | |
download | GT5-Unofficial-cbe0e497be8e466c380a5b4fa781b314ede9ada3.tar.gz GT5-Unofficial-cbe0e497be8e466c380a5b4fa781b314ede9ada3.tar.bz2 GT5-Unofficial-cbe0e497be8e466c380a5b4fa781b314ede9ada3.zip |
Revert "$ Cleaned up the entire project."
This reverts commit 0669f5eb9d5029a8b94ec552171b0837605f7747.
# Conflicts:
# src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMTE_NuclearReactor.java
# src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_MassFabricator.java
Revert "% Cleaned up Imports."
This reverts commit 3654052fb63a571c5eaca7f20714b87c17f7e966.
Diffstat (limited to 'src/Java/gtPlusPlus/core/util/fluid')
-rw-r--r-- | src/Java/gtPlusPlus/core/util/fluid/FluidGT6.java | 42 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java | 539 |
2 files changed, 272 insertions, 309 deletions
diff --git a/src/Java/gtPlusPlus/core/util/fluid/FluidGT6.java b/src/Java/gtPlusPlus/core/util/fluid/FluidGT6.java index dd1cdfe6ea..5674082c4a 100644 --- a/src/Java/gtPlusPlus/core/util/fluid/FluidGT6.java +++ b/src/Java/gtPlusPlus/core/util/fluid/FluidGT6.java @@ -4,27 +4,27 @@ import gregtech.api.GregTech_API; import gtPlusPlus.core.lib.CORE; import net.minecraftforge.fluids.Fluid; -public class FluidGT6 extends Fluid implements Runnable { - private final short[] mRGBa; - public final String mTextureName; - - public FluidGT6(final String aName, final String aTextureName, final short[] aRGBa) { - super(aName); - this.mRGBa = aRGBa; - this.mTextureName = aTextureName; - if (GregTech_API.sGTBlockIconload != null) { - GregTech_API.sGTBlockIconload.add(this); - } - } - - @Override +public class FluidGT6 extends Fluid implements Runnable +{ + private final short[] mRGBa; + public final String mTextureName; + + public FluidGT6(final String aName, final String aTextureName, final short[] aRGBa) { + super(aName); + this.mRGBa = aRGBa; + this.mTextureName = aTextureName; + if (GregTech_API.sGTBlockIconload != null) { + GregTech_API.sGTBlockIconload.add(this); + } + } + + @Override public int getColor() { - return Math.max(0, Math.min(255, this.mRGBa[0])) << 16 | Math.max(0, Math.min(255, this.mRGBa[1])) << 8 - | Math.max(0, Math.min(255, this.mRGBa[2])); - } - - @Override + return Math.max(0, Math.min(255, this.mRGBa[0])) << 16 | Math.max(0, Math.min(255, this.mRGBa[1])) << 8 | Math.max(0, Math.min(255, this.mRGBa[2])); + } + + @Override public void run() { - this.setIcons(GregTech_API.sBlockIcons.registerIcon(CORE.MODID + ":" + "fluids/fluid." + this.mTextureName)); - } + this.setIcons(GregTech_API.sBlockIcons.registerIcon(CORE.MODID+ ":" + "fluids/fluid." + mTextureName)); + } } diff --git a/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java b/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java index d104195082..83b0bfd65d 100644 --- a/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java +++ b/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java @@ -1,6 +1,8 @@ package gtPlusPlus.core.util.fluid; -import gregtech.api.enums.*; +import gregtech.api.enums.Dyes; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; import gregtech.api.util.GT_LanguageManager; import gtPlusPlus.core.fluids.GenericFluid; import gtPlusPlus.core.material.Material; @@ -8,375 +10,336 @@ import gtPlusPlus.core.util.Utils; import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.*; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidContainerItem; public class FluidUtils { - public static Fluid addAutogeneratedMoltenFluid(final GT_Materials aMaterial) { - return FluidUtils.addFluid("molten." + aMaterial.name().toLowerCase(), "molten.autogenerated", - "Molten " + aMaterial.name(), aMaterial, aMaterial.mMoltenRGBa, 1, - aMaterial.mMeltingPoint <= 0L ? 1000L : aMaterial.mMeltingPoint, null, null, 0); - } + public static FluidStack getFluidStack(String fluidName, int amount){ + Utils.LOG_WARNING("Trying to get a fluid stack of "+fluidName); + try { + return FluidRegistry.getFluidStack(fluidName, amount).copy(); + } + catch (Throwable e){ + return null; + } - public static Fluid addAutogeneratedMoltenFluid(final String materialNameFormatted, final short[] rgba, - final int MeltingPoint) { - return FluidUtils.addFluid("molten." + materialNameFormatted.toLowerCase(), "molten.autogenerated", - "Molten " + materialNameFormatted, null, rgba, 1, MeltingPoint <= 0L ? 1000L : MeltingPoint, null, null, - 0); } - - public static Fluid addFluid(final String aName, final String aLocalized, final GT_Materials aMaterial, - final int aState, final long aTemperatureK) { - return FluidUtils.addFluid(aName, aLocalized, aMaterial, aState, aTemperatureK, null, null, 0); + + public static FluidStack getFluidStack(FluidStack vmoltenFluid, int fluidAmount) { + Utils.LOG_WARNING("Trying to get a fluid stack of "+vmoltenFluid.getFluid().getName()); + try { + return FluidRegistry.getFluidStack(vmoltenFluid.getFluid().getName(), fluidAmount).copy(); + } + catch (Throwable e){ + return null; + } } - public static Fluid addFluid(final String aName, final String aLocalized, final GT_Materials aMaterial, - final int aState, final long aTemperatureK, final ItemStack aFullContainer, final ItemStack aEmptyContainer, - final int aFluidAmount) { - return FluidUtils.addFluid(aName, aName.toLowerCase(), aLocalized, aMaterial, null, aState, aTemperatureK, - aFullContainer, aEmptyContainer, aFluidAmount); + public static FluidStack[] getFluidStackArray(String fluidName, int amount){ + Utils.LOG_WARNING("Trying to get a fluid stack of "+fluidName); + try { + FluidStack[] singleFluid = {FluidRegistry.getFluidStack(fluidName, amount)}; + return singleFluid; + } + catch (Throwable e){ + return null; + } + } - public static Fluid addFluid(String aName, final String aTexture, final String aLocalized, - final GT_Materials aMaterial, final short[] aRGBa, final int aState, final long aTemperatureK, - final ItemStack aFullContainer, final ItemStack aEmptyContainer, final int aFluidAmount) { - aName = Utils.sanitizeString(aName.toLowerCase()); - Fluid rFluid = new FluidGT6(aName, aTexture, aRGBa != null ? aRGBa : Dyes._NULL.getRGBA()); - GT_LanguageManager.addStringLocalization(rFluid.getUnlocalizedName(), aLocalized == null ? aName : aLocalized); - if (FluidRegistry.registerFluid(rFluid)) { - switch (aState) { - case 0: { - rFluid.setGaseous(false); - rFluid.setViscosity(10000); - break; - } - case 1: - case 4: { - rFluid.setGaseous(false); - rFluid.setViscosity(1000); - break; - } - case 2: { - rFluid.setGaseous(true); - rFluid.setDensity(-100); - rFluid.setViscosity(200); - break; - } - case 3: { - rFluid.setGaseous(true); - rFluid.setDensity(-10000); - rFluid.setViscosity(10); - rFluid.setLuminosity(15); - break; - } - } - } - else { - rFluid = FluidRegistry.getFluid(aName); - } - if (rFluid.getTemperature() == new Fluid("test").getTemperature() || rFluid.getTemperature() <= 0) { - rFluid.setTemperature((int) aTemperatureK); - } - if (aMaterial != null) { - switch (aState) { - case 1: { - aMaterial.mFluid = rFluid; - break; - } - case 2: { - aMaterial.mGas = rFluid; - break; - } - case 3: { - aMaterial.mPlasma = rFluid; - break; - } - } - } - if (aFullContainer != null && aEmptyContainer != null && !FluidContainerRegistry - .registerFluidContainer(new FluidStack(rFluid, aFluidAmount), aFullContainer, aEmptyContainer)) { - GT_Values.RA.addFluidCannerRecipe(aFullContainer, FluidUtils.container(aFullContainer, false), null, - new FluidStack(rFluid, aFluidAmount)); + public static FluidStack[] getFluidStackArray(FluidStack fluidName, int amount){ + Utils.LOG_WARNING("Trying to get a fluid stack of "+fluidName); + try { + FluidStack[] singleFluid = {FluidRegistry.getFluidStack(fluidName.getLocalizedName(), amount)}; + return singleFluid; + } + catch (Throwable e){ + return null; } - return rFluid; - } - public static Fluid addGTFluid(final String aName, final String aLocalized, final short[] aRGBa, final int aState, - final long aTemperatureK, final ItemStack aFullContainer, final ItemStack aEmptyContainer, - final int aFluidAmount) { - return FluidUtils.addGTFluid("molten." + aName, "molten.autogenerated", aLocalized, aRGBa, aState, - aTemperatureK, aFullContainer, aEmptyContainer, aFluidAmount); } - - public static Fluid addGTFluid(String aName, final String aTexture, final String aLocalized, final short[] aRGBa, - final int aState, final long aTemperatureK, final ItemStack aFullContainer, final ItemStack aEmptyContainer, - final int aFluidAmount) { - aName = Utils.sanitizeString(aName.toLowerCase()); - Fluid rFluid = new FluidGT6(aName, aTexture, aRGBa != null ? aRGBa : Dyes._NULL.getRGBA()); - GT_LanguageManager.addStringLocalization(rFluid.getUnlocalizedName(), aLocalized == null ? aName : aLocalized); - if (FluidRegistry.registerFluid(rFluid)) { - switch (aState) { - case 0: { - rFluid.setGaseous(false); - rFluid.setViscosity(10000); - break; - } - case 1: - case 4: { - rFluid.setGaseous(false); - rFluid.setViscosity(1000); - break; - } - case 2: { - rFluid.setGaseous(true); - rFluid.setDensity(-100); - rFluid.setViscosity(200); - break; - } - case 3: { - rFluid.setGaseous(true); - rFluid.setDensity(-10000); - rFluid.setViscosity(10); - rFluid.setLuminosity(15); - break; - } - } + + + /** + * @param String displayName + * @param String fluidName + * @param int meltingPointC Temp + * @param short[] rgba + * @param byte state + * States: 0 (Solid), 1 (Fluid), 2(Gas), 3(Plasma) 4(Fuel I think? Don't use.) + * + * @return short[] + */ + public static Fluid generateFluid(String displayName, String fluidName, int tempK, short[] rgba ,int aState){ + Fluid generatedFluid = null; + switch (aState) { + case 0: { + generatedFluid = new GenericFluid(displayName, fluidName, 0, 100, tempK, 10000, false, rgba); + break; } - else { - rFluid = FluidRegistry.getFluid(aName); + default: + case 1: + case 4: { + generatedFluid = new GenericFluid(displayName, fluidName, 0, 100, tempK, 1000, false, rgba); + break; } - if (rFluid.getTemperature() == new Fluid("test").getTemperature() || rFluid.getTemperature() <= 0) { - rFluid.setTemperature((int) aTemperatureK); + case 2: { + generatedFluid = new GenericFluid(displayName, fluidName, 0, -100, tempK, 200, true, rgba); + break; } - if (aFullContainer != null && aEmptyContainer != null && !FluidContainerRegistry - .registerFluidContainer(new FluidStack(rFluid, aFluidAmount), aFullContainer, aEmptyContainer)) { - GT_Values.RA.addFluidCannerRecipe(aFullContainer, FluidUtils.container(aFullContainer, false), null, - new FluidStack(rFluid, aFluidAmount)); + case 3: { + generatedFluid = new GenericFluid(displayName, fluidName, 15, -10000, tempK, 10, true, rgba); + break; } - return rFluid; - } - - public static ItemStack amount(final long aAmount, final Object... aStacks) { - final ItemStack rStack = FluidUtils.copy(aStacks); - if (FluidUtils.invalid(rStack)) { - return null; } - rStack.stackSize = (int) aAmount; - return rStack; + return generatedFluid; } - - public static ItemStack container(final ItemStack aStack, final boolean aCheckIFluidContainerItems) { - if (FluidUtils.invalid(aStack)) { - return null; - } - if (aStack.getItem().hasContainerItem(aStack)) { - return aStack.getItem().getContainerItem(aStack); - } - if (FluidUtils.equal(aStack, ItemList.Cell_Empty.get(1), true)) { - return null; + /** + * + * @param String fluidName + * @param int meltingPointC Temp + * @param short[] rgba + * @param byte state + * States: 0 (Solid), 1 (Fluid), 2(Gas), 3(Plasma) 4(Fuel I think? Don't use.) + * + * @return short[] + */ + public static Fluid generateFluid(Material material ,int aState){ + int tempK = material.getMeltingPointC(); + Fluid generatedFluid = null; + switch (aState) { + case 0: { + generatedFluid = new GenericFluid(material, 0, 100, tempK, 10000, false); + break; } - if (aCheckIFluidContainerItems && aStack.getItem() instanceof IFluidContainerItem - && ((IFluidContainerItem) aStack.getItem()).getCapacity(aStack) > 0) { - final ItemStack tStack = FluidUtils.amount(1L, aStack); - ((IFluidContainerItem) aStack.getItem()).drain(tStack, Integer.MAX_VALUE, true); - if (!FluidUtils.equal(aStack, tStack)) { - return tStack; - } - return null; + default: + case 1: + case 4: { + generatedFluid = new GenericFluid(material, 0, 100, tempK, 1000, false); + break; } - if (FluidUtils.equal(aStack, ItemList.IC2_ForgeHammer.get(1)) - || FluidUtils.equal(aStack, ItemList.IC2_WireCutter.get(1))) { - return FluidUtils.copyMeta(FluidUtils.meta(aStack) + 1, aStack); + case 2: { + generatedFluid = new GenericFluid(material, 0, -100, tempK, 200, true); + break; } - return null; - } - - public static ItemStack container(final ItemStack aStack, final boolean aCheckIFluidContainerItems, - final int aStacksize) { - return FluidUtils.amount(aStacksize, FluidUtils.container(aStack, aCheckIFluidContainerItems)); - } - - public static ItemStack copy(final Object... aStacks) { - for (final Object tStack : aStacks) { - if (FluidUtils.valid(tStack)) { - return ((ItemStack) tStack).copy(); - } + case 3: { + generatedFluid = new GenericFluid(material, 15, -10000, tempK, 10, true); + break; } - return null; - } - - public static ItemStack copyMeta(final long aMetaData, final Object... aStacks) { - final ItemStack rStack = FluidUtils.copy(aStacks); - if (FluidUtils.invalid(rStack)) { - return null; } - return FluidUtils.meta(rStack, aMetaData); + return generatedFluid; } + - public static boolean equal(final ItemStack aStack1, final ItemStack aStack2) { - return FluidUtils.equal(aStack1, aStack2, false); + public static Fluid addAutogeneratedMoltenFluid(String materialNameFormatted, short[] rgba, int MeltingPoint) { + return addFluid("molten." + materialNameFormatted.toLowerCase(), "molten.autogenerated", "Molten " + materialNameFormatted, null, rgba, 1, (MeltingPoint <= 0L) ? 1000L : MeltingPoint, null, null, 0); + } + + public static Fluid addAutogeneratedMoltenFluid(final GT_Materials aMaterial) { + return addFluid("molten." + aMaterial.name().toLowerCase(), "molten.autogenerated", "Molten " + aMaterial.name(), aMaterial, aMaterial.mMoltenRGBa, 1, (aMaterial.mMeltingPoint <= 0L) ? 1000L : aMaterial.mMeltingPoint, null, null, 0); } - public static boolean equal(final ItemStack aStack1, final ItemStack aStack2, final boolean aIgnoreNBT) { - return aStack1 != null && aStack2 != null && FluidUtils.equal_(aStack1, aStack2, aIgnoreNBT); + public static Fluid addFluid(final String aName, final String aLocalized, final GT_Materials aMaterial, final int aState, final long aTemperatureK) { + return addFluid(aName, aLocalized, aMaterial, aState, aTemperatureK, null, null, 0); } - public static boolean equal_(final ItemStack aStack1, final ItemStack aStack2, final boolean aIgnoreNBT) { - return aStack1.getItem() == aStack2.getItem() - && (aIgnoreNBT || aStack1.getTagCompound() == null == (aStack2.getTagCompound() == null) - && (aStack1.getTagCompound() == null - || aStack1.getTagCompound().equals(aStack2.getTagCompound()))) - && (FluidUtils.meta(aStack1) == FluidUtils.meta(aStack2) || FluidUtils.meta(aStack1) == 32767 - || FluidUtils.meta(aStack2) == 32767); + public static Fluid addFluid(final String aName, final String aLocalized, final GT_Materials aMaterial, final int aState, final long aTemperatureK, final ItemStack aFullContainer, final ItemStack aEmptyContainer, final int aFluidAmount) { + return addFluid(aName, aName.toLowerCase(), aLocalized, aMaterial, null, aState, aTemperatureK, aFullContainer, aEmptyContainer, aFluidAmount); } - /** - * - * @param String - * fluidName - * @param int - * meltingPointC Temp - * @param short[] - * rgba - * @param byte - * state States: 0 (Solid), 1 (Fluid), 2(Gas), 3(Plasma) 4(Fuel I - * think? Don't use.) - * - * @return short[] - */ - public static Fluid generateFluid(final Material material, final int aState) { - final int tempK = material.getMeltingPointC(); - Fluid generatedFluid = null; - switch (aState) { + public static Fluid addFluid(String aName, final String aTexture, final String aLocalized, final GT_Materials aMaterial, final short[] aRGBa, final int aState, final long aTemperatureK, final ItemStack aFullContainer, final ItemStack aEmptyContainer, final int aFluidAmount) { + aName = Utils.sanitizeString(aName.toLowerCase()); + Fluid rFluid = new FluidGT6(aName, aTexture, (aRGBa != null) ? aRGBa : Dyes._NULL.getRGBA()); + GT_LanguageManager.addStringLocalization(rFluid.getUnlocalizedName(), (aLocalized == null) ? aName : aLocalized); + if (FluidRegistry.registerFluid(rFluid)) { + switch (aState) { case 0: { - generatedFluid = new GenericFluid(material, 0, 100, tempK, 10000, false); + rFluid.setGaseous(false); + rFluid.setViscosity(10000); break; } - default: case 1: case 4: { - generatedFluid = new GenericFluid(material, 0, 100, tempK, 1000, false); + rFluid.setGaseous(false); + rFluid.setViscosity(1000); break; } case 2: { - generatedFluid = new GenericFluid(material, 0, -100, tempK, 200, true); + rFluid.setGaseous(true); + rFluid.setDensity(-100); + rFluid.setViscosity(200); break; } case 3: { - generatedFluid = new GenericFluid(material, 15, -10000, tempK, 10, true); + rFluid.setGaseous(true); + rFluid.setDensity(-10000); + rFluid.setViscosity(10); + rFluid.setLuminosity(15); break; } + } } - return generatedFluid; + else { + rFluid = FluidRegistry.getFluid(aName); + } + if (rFluid.getTemperature() == new Fluid("test").getTemperature() || rFluid.getTemperature() <= 0) { + rFluid.setTemperature((int) (aTemperatureK)); + } + if (aMaterial != null) { + switch (aState) { + case 1: { + aMaterial.mFluid = (rFluid); + break; + } + case 2: { + aMaterial.mGas = (rFluid); + break; + } + case 3: { + aMaterial.mPlasma = (rFluid); + break; + } + } + } + if (aFullContainer != null && aEmptyContainer != null && !FluidContainerRegistry.registerFluidContainer(new FluidStack(rFluid, aFluidAmount), aFullContainer, aEmptyContainer)) { + GT_Values.RA.addFluidCannerRecipe(aFullContainer, container(aFullContainer, false), null, new FluidStack(rFluid, aFluidAmount)); + } + return rFluid; } - - /** - * @param String - * displayName - * @param String - * fluidName - * @param int - * meltingPointC Temp - * @param short[] - * rgba - * @param byte - * state States: 0 (Solid), 1 (Fluid), 2(Gas), 3(Plasma) 4(Fuel I - * think? Don't use.) - * - * @return short[] - */ - public static Fluid generateFluid(final String displayName, final String fluidName, final int tempK, - final short[] rgba, final int aState) { - Fluid generatedFluid = null; - switch (aState) { + + public static Fluid addGTFluid(final String aName, final String aLocalized, final short[] aRGBa, final int aState, final long aTemperatureK, final ItemStack aFullContainer, final ItemStack aEmptyContainer, final int aFluidAmount) { + return addGTFluid("molten."+aName, "molten.autogenerated", aLocalized, aRGBa, aState, aTemperatureK, aFullContainer, aEmptyContainer, aFluidAmount); + } + + public static Fluid addGTFluid(String aName, final String aTexture, final String aLocalized, final short[] aRGBa, final int aState, final long aTemperatureK, final ItemStack aFullContainer, final ItemStack aEmptyContainer, final int aFluidAmount) { + aName = Utils.sanitizeString(aName.toLowerCase()); + Fluid rFluid = new FluidGT6(aName, aTexture, (aRGBa != null) ? aRGBa : Dyes._NULL.getRGBA()); + GT_LanguageManager.addStringLocalization(rFluid.getUnlocalizedName(), (aLocalized == null) ? aName : aLocalized); + if (FluidRegistry.registerFluid(rFluid)) { + switch (aState) { case 0: { - generatedFluid = new GenericFluid(displayName, fluidName, 0, 100, tempK, 10000, false, rgba); + rFluid.setGaseous(false); + rFluid.setViscosity(10000); break; } - default: case 1: case 4: { - generatedFluid = new GenericFluid(displayName, fluidName, 0, 100, tempK, 1000, false, rgba); + rFluid.setGaseous(false); + rFluid.setViscosity(1000); break; } case 2: { - generatedFluid = new GenericFluid(displayName, fluidName, 0, -100, tempK, 200, true, rgba); + rFluid.setGaseous(true); + rFluid.setDensity(-100); + rFluid.setViscosity(200); break; } case 3: { - generatedFluid = new GenericFluid(displayName, fluidName, 15, -10000, tempK, 10, true, rgba); + rFluid.setGaseous(true); + rFluid.setDensity(-10000); + rFluid.setViscosity(10); + rFluid.setLuminosity(15); break; } + } } - return generatedFluid; - } - - public static FluidStack getFluidStack(final FluidStack vmoltenFluid, final int fluidAmount) { - Utils.LOG_WARNING("Trying to get a fluid stack of " + vmoltenFluid.getFluid().getName()); - try { - return FluidRegistry.getFluidStack(vmoltenFluid.getFluid().getName(), fluidAmount).copy(); + else { + rFluid = FluidRegistry.getFluid(aName); } - catch (final Throwable e) { - return null; + if (rFluid.getTemperature() == new Fluid("test").getTemperature() || rFluid.getTemperature() <= 0) { + rFluid.setTemperature((int) (aTemperatureK)); + } + if (aFullContainer != null && aEmptyContainer != null && !FluidContainerRegistry.registerFluidContainer(new FluidStack(rFluid, aFluidAmount), aFullContainer, aEmptyContainer)) { + GT_Values.RA.addFluidCannerRecipe(aFullContainer, container(aFullContainer, false), null, new FluidStack(rFluid, aFluidAmount)); } + return rFluid; } - public static FluidStack getFluidStack(final String fluidName, final int amount) { - Utils.LOG_WARNING("Trying to get a fluid stack of " + fluidName); - try { - return FluidRegistry.getFluidStack(fluidName, amount).copy(); - } - catch (final Throwable e) { - return null; - } + public static boolean valid(final Object aStack) { + return aStack != null && aStack instanceof ItemStack && ((ItemStack)aStack).getItem() != null && ((ItemStack)aStack).stackSize >= 0; + } + public static boolean invalid(final Object aStack) { + return aStack == null || !(aStack instanceof ItemStack) || ((ItemStack)aStack).getItem() == null || ((ItemStack)aStack).stackSize < 0; } - public static FluidStack[] getFluidStackArray(final FluidStack fluidName, final int amount) { - Utils.LOG_WARNING("Trying to get a fluid stack of " + fluidName); - try { - final FluidStack[] singleFluid = { - FluidRegistry.getFluidStack(fluidName.getLocalizedName(), amount) - }; - return singleFluid; - } - catch (final Throwable e) { - return null; - } + public static boolean equal(final ItemStack aStack1, final ItemStack aStack2) { + return equal(aStack1, aStack2, false); + } + public static boolean equal(final ItemStack aStack1, final ItemStack aStack2, final boolean aIgnoreNBT) { + return aStack1 != null && aStack2 != null && equal_(aStack1, aStack2, aIgnoreNBT); } - public static FluidStack[] getFluidStackArray(final String fluidName, final int amount) { - Utils.LOG_WARNING("Trying to get a fluid stack of " + fluidName); - try { - final FluidStack[] singleFluid = { - FluidRegistry.getFluidStack(fluidName, amount) - }; - return singleFluid; - } - catch (final Throwable e) { - return null; - } + public static boolean equal_(final ItemStack aStack1, final ItemStack aStack2, final boolean aIgnoreNBT) { + return aStack1.getItem() == aStack2.getItem() && (aIgnoreNBT || (aStack1.getTagCompound() == null == (aStack2.getTagCompound() == null) && (aStack1.getTagCompound() == null || aStack1.getTagCompound().equals((Object)aStack2.getTagCompound())))) && (meta(aStack1) == meta(aStack2) || meta(aStack1) == 32767 || meta(aStack2) == 32767); + } + public static ItemStack copy(final Object... aStacks) { + for (final Object tStack : aStacks) { + if (valid(tStack)) { + return ((ItemStack)tStack).copy(); + } + } + return null; } - public static boolean invalid(final Object aStack) { - return aStack == null || !(aStack instanceof ItemStack) || ((ItemStack) aStack).getItem() == null - || ((ItemStack) aStack).stackSize < 0; + public static ItemStack copyMeta(final long aMetaData, final Object... aStacks) { + final ItemStack rStack = copy(aStacks); + if (invalid(rStack)) { + return null; + } + return meta(rStack, aMetaData); } public static short meta(final ItemStack aStack) { - return (short) Items.feather.getDamage(aStack); + return (short)Items.feather.getDamage(aStack); } public static ItemStack meta(final ItemStack aStack, final long aMeta) { - Items.feather.setDamage(aStack, (short) aMeta); + Items.feather.setDamage(aStack, (int)(short)aMeta); return aStack; } - public static boolean valid(final Object aStack) { - return aStack != null && aStack instanceof ItemStack && ((ItemStack) aStack).getItem() != null - && ((ItemStack) aStack).stackSize >= 0; + public static ItemStack amount(final long aAmount, final Object... aStacks) { + final ItemStack rStack = copy(aStacks); + if (invalid(rStack)) { + return null; + } + rStack.stackSize = (int)aAmount; + return rStack; + } + + public static ItemStack container(final ItemStack aStack, final boolean aCheckIFluidContainerItems) { + if (invalid(aStack)) { + return null; + } + if (aStack.getItem().hasContainerItem(aStack)) { + return aStack.getItem().getContainerItem(aStack); + } + if (equal(aStack, ItemList.Cell_Empty.get(1), true)) { + return null; + } + if (aCheckIFluidContainerItems && aStack.getItem() instanceof IFluidContainerItem && ((IFluidContainerItem)aStack.getItem()).getCapacity(aStack) > 0) { + final ItemStack tStack = amount(1L, aStack); + ((IFluidContainerItem)aStack.getItem()).drain(tStack, Integer.MAX_VALUE, true); + if (!equal(aStack, tStack)) { + return tStack; + } + return null; + } + if (equal(aStack, ItemList.IC2_ForgeHammer.get(1)) || equal(aStack, ItemList.IC2_WireCutter.get(1))) { + return copyMeta(meta(aStack) + 1, aStack); + } + return null; } + public static ItemStack container(final ItemStack aStack, final boolean aCheckIFluidContainerItems, final int aStacksize) { + return amount(aStacksize, container(aStack, aCheckIFluidContainerItems)); + } + } |