Interface FluidVariant

All Superinterfaces:
TransferVariant<Fluid>

@Experimental @NonExtendable public interface FluidVariant extends TransferVariant<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 equals, never by reference! 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(Fluid fluid)
      Retrieve a FluidVariant with a fluid, and a null tag.

      The flowing and still variations of flowable fluids are normalized to always refer to the still variant. For example, FluidVariant.of(Fluids.FLOWING_WATER).getFluid() == Fluids.WATER.

    • of

      Retrieve a FluidVariant with a fluid, and an optional tag.

      The flowing and still variations of flowable fluids are normalized to always refer to the still fluid. For example, FluidVariant.of(Fluids.FLOWING_WATER, nbt).getFluid() == Fluids.WATER.

    • getFluid

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

      static FluidVariant fromNbt(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(PacketByteBuf buf)
      Read a variant from a packet byte buffer, assuming it was serialized using TransferVariant.toPacket(net.minecraft.network.PacketByteBuf).