Class ChunkNibbleArray

java.lang.Object
net.minecraft.world.chunk.ChunkNibbleArray

public class ChunkNibbleArray extends Object
A chunk nibble array is an array of nibbles for each block position in a chunk. It is most often used to store light data.

A nibble is 4 bits, storing an integer from 0 to 15. It takes half the space of a byte.

The nibbles are stored in an X-Z-Y major order; in the backing array, the indices increases by first increasing X, then Z, and finally Y.

Mappings:
Namespace Name
named net/minecraft/world/chunk/ChunkNibbleArray
intermediary net/minecraft/class_2804
official due
  • Field Details

    • COPY_TIMES

      public static final int COPY_TIMES
      See Also:
      Mappings:
      Namespace Name Mixin selector
      named COPY_TIMES Lnet/minecraft/world/chunk/ChunkNibbleArray;COPY_TIMES:I
      intermediary field_34052 Lnet/minecraft/class_2804;field_34052:I
      official a Ldue;a:I
    • COPY_BLOCK_SIZE

      public static final int COPY_BLOCK_SIZE
      See Also:
      Mappings:
      Namespace Name Mixin selector
      named COPY_BLOCK_SIZE Lnet/minecraft/world/chunk/ChunkNibbleArray;COPY_BLOCK_SIZE:I
      intermediary field_31404 Lnet/minecraft/class_2804;field_31404:I
      official b Ldue;b:I
    • BYTES_LENGTH

      public static final int BYTES_LENGTH
      See Also:
      Mappings:
      Namespace Name Mixin selector
      named BYTES_LENGTH Lnet/minecraft/world/chunk/ChunkNibbleArray;BYTES_LENGTH:I
      intermediary field_31403 Lnet/minecraft/class_2804;field_31403:I
      official c Ldue;c:I
    • NIBBLE_BITS

      private static final int NIBBLE_BITS
      See Also:
      Mappings:
      Namespace Name Mixin selector
      named NIBBLE_BITS Lnet/minecraft/world/chunk/ChunkNibbleArray;NIBBLE_BITS:I
      intermediary field_31405 Lnet/minecraft/class_2804;field_31405:I
      official e Ldue;e:I
    • bytes

      @Nullable protected @org.jetbrains.annotations.Nullable byte[] bytes
      Mappings:
      Namespace Name Mixin selector
      named bytes Lnet/minecraft/world/chunk/ChunkNibbleArray;bytes:[B
      intermediary field_12783 Lnet/minecraft/class_2804;field_12783:[B
      official d Ldue;d:[B
    • defaultValue

      private int defaultValue
      Mappings:
      Namespace Name Mixin selector
      named defaultValue Lnet/minecraft/world/chunk/ChunkNibbleArray;defaultValue:I
      intermediary field_44635 Lnet/minecraft/class_2804;field_44635:I
      official f Ldue;f:I
  • Constructor Details

    • ChunkNibbleArray

      public ChunkNibbleArray()
    • ChunkNibbleArray

      public ChunkNibbleArray(int defaultValue)
      Mappings:
      Namespace Name Mixin selector
      named <init> Lnet/minecraft/world/chunk/ChunkNibbleArray;<init>(I)V
      intermediary <init> Lnet/minecraft/class_2804;<init>(I)V
      official <init> Ldue;<init>(I)V
    • ChunkNibbleArray

      public ChunkNibbleArray(byte[] bytes)
      Mappings:
      Namespace Name Mixin selector
      named <init> Lnet/minecraft/world/chunk/ChunkNibbleArray;<init>([B)V
      intermediary <init> Lnet/minecraft/class_2804;<init>([B)V
      official <init> Ldue;<init>([B)V
  • Method Details

    • get

      public int get(int x, int y, int z)
      Returns the integer value of a nibble, in [0, 15].
      Returns:
      the integer value of a nibble, in [0, 15]
      Mappings:
      Namespace Name Mixin selector
      named get Lnet/minecraft/world/chunk/ChunkNibbleArray;get(III)I
      intermediary method_12139 Lnet/minecraft/class_2804;method_12139(III)I
      official a Ldue;a(III)I
    • set

      public void set(int x, int y, int z, int value)
      Sets the value of a nibble.

      If the value has bits outside of the lowest 4 set to 1, (value is outside of [0, 15]), the extraneous bits are discarded.

      Mappings:
      Namespace Name Mixin selector
      named set Lnet/minecraft/world/chunk/ChunkNibbleArray;set(IIII)V
      intermediary method_12145 Lnet/minecraft/class_2804;method_12145(IIII)V
      official a Ldue;a(IIII)V
    • getIndex

      private static int getIndex(int x, int y, int z)
      Mappings:
      Namespace Name Mixin selector
      named getIndex Lnet/minecraft/world/chunk/ChunkNibbleArray;getIndex(III)I
      intermediary method_12140 Lnet/minecraft/class_2804;method_12140(III)I
      official b Ldue;b(III)I
    • get

      private int get(int index)
      Mappings:
      Namespace Name Mixin selector
      named get Lnet/minecraft/world/chunk/ChunkNibbleArray;get(I)I
      intermediary method_12141 Lnet/minecraft/class_2804;method_12141(I)I
      official d Ldue;d(I)I
    • set

      private void set(int index, int value)
      Mappings:
      Namespace Name Mixin selector
      named set Lnet/minecraft/world/chunk/ChunkNibbleArray;set(II)V
      intermediary method_12142 Lnet/minecraft/class_2804;method_12142(II)V
      official a Ldue;a(II)V
    • occupiesSmallerBits

      private static int occupiesSmallerBits(int i)
      Returns if the nibble at n is stored in the less significant (smaller) 4 bits of the byte in the backing array.
      Returns:
      if the nibble at n is stored in the less significant (smaller) 4 bits of the byte in the backing array
      Mappings:
      Namespace Name Mixin selector
      named occupiesSmallerBits Lnet/minecraft/world/chunk/ChunkNibbleArray;occupiesSmallerBits(I)I
      intermediary method_37459 Lnet/minecraft/class_2804;method_37459(I)I
      official e Ldue;e(I)I
    • getArrayIndex

      private static int getArrayIndex(int i)
      Mappings:
      Namespace Name Mixin selector
      named getArrayIndex Lnet/minecraft/world/chunk/ChunkNibbleArray;getArrayIndex(I)I
      intermediary method_12138 Lnet/minecraft/class_2804;method_12138(I)I
      official f Ldue;f(I)I
    • clear

      public void clear(int defaultValue)
      Mappings:
      Namespace Name Mixin selector
      named clear Lnet/minecraft/world/chunk/ChunkNibbleArray;clear(I)V
      intermediary method_51527 Lnet/minecraft/class_2804;method_51527(I)V
      official a Ldue;a(I)V
    • pack

      private static byte pack(int value)
      Mappings:
      Namespace Name Mixin selector
      named pack Lnet/minecraft/world/chunk/ChunkNibbleArray;pack(I)B
      intermediary method_51381 Lnet/minecraft/class_2804;method_51381(I)B
      official g Ldue;g(I)B
    • asByteArray

      public byte[] asByteArray()
      Mappings:
      Namespace Name Mixin selector
      named asByteArray Lnet/minecraft/world/chunk/ChunkNibbleArray;asByteArray()[B
      intermediary method_12137 Lnet/minecraft/class_2804;method_12137()[B
      official a Ldue;a()[B
    • copy

      public ChunkNibbleArray copy()
      Mappings:
      Namespace Name Mixin selector
      named copy Lnet/minecraft/world/chunk/ChunkNibbleArray;copy()Lnet/minecraft/world/chunk/ChunkNibbleArray;
      intermediary method_12144 Lnet/minecraft/class_2804;method_12144()Lnet/minecraft/class_2804;
      official b Ldue;b()Ldue;
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • bottomToString

      public String bottomToString(int unused)
      Returns a hexadecimal string representation of the y=0 level of this array.

      It is useful for debugging the grid nibble array.

      Parameters:
      unused - unused
      Returns:
      a hexadecimal string representation of the y=0 level of this array
      Mappings:
      Namespace Name Mixin selector
      named bottomToString Lnet/minecraft/world/chunk/ChunkNibbleArray;bottomToString(I)Ljava/lang/String;
      intermediary method_35320 Lnet/minecraft/class_2804;method_35320(I)Ljava/lang/String;
      official b Ldue;b(I)Ljava/lang/String;
    • isArrayUninitialized

      public boolean isArrayUninitialized()
      Mappings:
      Namespace Name Mixin selector
      named isArrayUninitialized Lnet/minecraft/world/chunk/ChunkNibbleArray;isArrayUninitialized()Z
      intermediary method_51380 Lnet/minecraft/class_2804;method_51380()Z
      official c Ldue;c()Z
    • isUninitialized

      public boolean isUninitialized(int expectedDefaultValue)
      Mappings:
      Namespace Name Mixin selector
      named isUninitialized Lnet/minecraft/world/chunk/ChunkNibbleArray;isUninitialized(I)Z
      intermediary method_51379 Lnet/minecraft/class_2804;method_51379(I)Z
      official c Ldue;c(I)Z
    • isUninitialized

      public boolean isUninitialized()
      Mappings:
      Namespace Name Mixin selector
      named isUninitialized Lnet/minecraft/world/chunk/ChunkNibbleArray;isUninitialized()Z
      intermediary method_12146 Lnet/minecraft/class_2804;method_12146()Z
      official d Ldue;d()Z