net.minecraftforge.fluids

## Class FluidStack

- java.lang.Object
- - net.minecraftforge.fluids.FluidStack

-     public class FluidStack
      extends Object

  ItemStack substitute for Fluids. NOTE: Equality is based on the Fluid, not the amount. Use `isFluidStackIdentical(FluidStack)` to determine if FluidID, Amount and NBT Tag are all equal.
  Author:
    King Lemming, SirSengir (LiquidStack)

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `int` | `amount`
    `int` | `fluidID`
    `NBTTagCompound` | `tag`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FluidStack(Fluid fluid, int amount)`
    `FluidStack(FluidStack stack, int amount)`
    `FluidStack(int fluidID, int amount)`
    `FluidStack(int fluidID, int amount, NBTTagCompound nbt)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static boolean` | `areFluidStackTagsEqual(FluidStack stack1, FluidStack stack2)` Determines if the NBT Tags are equal.
    `boolean` | `containsFluid(FluidStack other)` Determines if the Fluids are equal and this stack is larger.
    `FluidStack` | `copy()`
    `boolean` | `equals(Object o)` Default equality comparison for a FluidStack.
    `Fluid` | `getFluid()`
    `int` | `hashCode()`
    `boolean` | `isFluidEqual(FluidStack other)` Determines if the FluidIDs and NBT Tags are equal.
    `boolean` | `isFluidEqual(ItemStack other)` Determines if the FluidIDs and NBT Tags are equal compared to a registered container ItemStack.
    `boolean` | `isFluidStackIdentical(FluidStack other)` Determines if the FluidIDs, Amounts, and NBT Tags are all equal.
    `static FluidStack` | `loadFluidStackFromNBT(NBTTagCompound nbt)` This provides a safe method for retrieving a FluidStack - if the Fluid is invalid, the stack will return as null.
    `NBTTagCompound` | `writeToNBT(NBTTagCompound nbt)`

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### fluidID

          public int fluidID

    - #### amount

          public int amount

    - #### tag

          public NBTTagCompound tag

  - ### Constructor Detail

    - #### FluidStack

          public FluidStack(Fluid fluid,
                    int amount)

    - #### FluidStack

          public FluidStack(int fluidID,
                    int amount)

    - #### FluidStack

          public FluidStack(int fluidID,
                    int amount,
                    NBTTagCompound nbt)

    - #### FluidStack

          public FluidStack(FluidStack stack,
                    int amount)

  - ### Method Detail

    - #### loadFluidStackFromNBT

          public static FluidStack loadFluidStackFromNBT(NBTTagCompound nbt)

      This provides a safe method for retrieving a FluidStack - if the Fluid is invalid, the stack will return as null.

    - #### writeToNBT

          public NBTTagCompound writeToNBT(NBTTagCompound nbt)

    - #### getFluid

          public final Fluid getFluid()

    - #### copy

          public FluidStack copy()

      Returns:
        A copy of this FluidStack

    - #### isFluidEqual

          public boolean isFluidEqual(FluidStack other)

      Determines if the FluidIDs and NBT Tags are equal. This does not check amounts.
      Parameters:
        `other` - The FluidStack for comparison
      Returns:
        true if the Fluids (IDs and NBT Tags) are the same

    - #### areFluidStackTagsEqual

          public static boolean areFluidStackTagsEqual(FluidStack stack1,
                                       FluidStack stack2)

      Determines if the NBT Tags are equal. Useful if the FluidIDs are known to be equal.

    - #### containsFluid

          public boolean containsFluid(FluidStack other)

      Determines if the Fluids are equal and this stack is larger.
      Parameters:
        `other` -
      Returns:
        true if this FluidStack contains the other FluidStack (same fluid and >= amount)

    - #### isFluidStackIdentical

          public boolean isFluidStackIdentical(FluidStack other)

      Determines if the FluidIDs, Amounts, and NBT Tags are all equal.
      Parameters:
        `other` - - the FluidStack for comparison
      Returns:
        true if the two FluidStacks are exactly the same

    - #### isFluidEqual

          public boolean isFluidEqual(ItemStack other)

      Determines if the FluidIDs and NBT Tags are equal compared to a registered container ItemStack. This does not check amounts.
      Parameters:
        `other` - The ItemStack for comparison
      Returns:
        true if the Fluids (IDs and NBT Tags) are the same

    - #### hashCode

          public final int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### equals

          public final boolean equals(Object o)

      Default equality comparison for a FluidStack. Same functionality as isFluidEqual(). This is included for use in data structures.
      Overrides:
        `equals` in class `Object`