Interface FluidVariant

All Superinterfaces:
TransferVariant<net.minecraft.fluid.Fluid>

@Experimental @NonExtendable public interface FluidVariant extends TransferVariant<net.minecraft.fluid.Fluid>
An immutable association of a still fluid and an optional NBT tag.

Do not extend this class. Use of(Fluid) and of(Fluid, NbtCompound) to create instances.

FluidVariantRendering can be used for client-side rendering of fluid variants.

Fluid variants must always be compared with

invalid @link
#equals
, never by reference!
invalid @link
#hashCode
is guaranteed to be correct and constant time independently of the size of the NBT.

Experimental feature, we reserve the right to remove or change it without further notice. The transfer API is a complex addition, and we want to be able to correct possible design mistakes.

  • Method Details

    • blank

      static FluidVariant blank()
      Retrieve a blank FluidVariant.
    • of

      static FluidVariant of(net.minecraft.fluid.Fluid fluid)
      Retrieve a FluidVariant with a fluid, and a null tag.
    • of

      static FluidVariant of(net.minecraft.fluid.Fluid fluid, @Nullable @Nullable net.minecraft.nbt.NbtCompound nbt)
      Retrieve a FluidVariant with a fluid, and an optional tag.
    • getFluid

      default net.minecraft.fluid.Fluid getFluid()
      Return the fluid of this variant.
    • fromNbt

      static FluidVariant fromNbt(net.minecraft.nbt.NbtCompound nbt)
      Deserialize a variant from an NBT compound tag, assuming it was serialized using TransferVariant.toNbt().

      If an error occurs during deserialization, it will be logged with the DEBUG level, and a blank variant will be returned.

    • fromPacket

      static FluidVariant fromPacket(net.minecraft.network.PacketByteBuf buf)
      Read a variant from a packet byte buffer, assuming it was serialized using TransferVariant.toPacket(net.minecraft.network.PacketByteBuf).