Class PalettedContainer<T>

java.lang.Object
net.minecraft.world.chunk.PalettedContainer<T>
All Implemented Interfaces:
PaletteResizeListener<T>, ReadableContainer<T>

public class PalettedContainer<T> extends Object implements PaletteResizeListener<T>, ReadableContainer<T>
A paletted container stores objects in 3D voxels as small integer indices, governed by "palettes" that map between these objects and indices.
See Also:
Mappings:
Namespace Name
named net/minecraft/world/chunk/PalettedContainer
intermediary net/minecraft/class_2841
official emd
  • Field Details

    • field_34557

      private static final int field_34557
      See Also:
      Mappings:
      Namespace Name Mixin selector
      named field_34557 Lnet/minecraft/world/chunk/PalettedContainer;field_34557:I
      intermediary field_34557 Lnet/minecraft/class_2841;field_34557:I
      official a Lemd;a:I
    • data

      private volatile PalettedContainer.Data<T> data
      Mappings:
      Namespace Name Mixin selector
      named data Lnet/minecraft/world/chunk/PalettedContainer;data:Lnet/minecraft/world/chunk/PalettedContainer$Data;
      intermediary field_34560 Lnet/minecraft/class_2841;field_34560:Lnet/minecraft/class_2841$class_6561;
      official b Lemd;b:Lemd$b;
    • paletteProvider

      private final PaletteProvider<T> paletteProvider
      Mappings:
      Namespace Name Mixin selector
      named paletteProvider Lnet/minecraft/world/chunk/PalettedContainer;paletteProvider:Lnet/minecraft/world/chunk/PaletteProvider;
      intermediary field_34561 Lnet/minecraft/class_2841;field_34561:Lnet/minecraft/class_6563;
      official c Lemd;c:Lemi;
    • lockHelper

      private final LockHelper lockHelper
      Mappings:
      Namespace Name Mixin selector
      named lockHelper Lnet/minecraft/world/chunk/PalettedContainer;lockHelper:Lnet/minecraft/util/thread/LockHelper;
      intermediary field_36300 Lnet/minecraft/class_2841;field_36300:Lnet/minecraft/class_5798;
      official d Lemd;d:Lbgj;
  • Constructor Details

    • PalettedContainer

      private PalettedContainer(PaletteProvider<T> paletteProvider, PaletteType type, PaletteStorage storage, Palette<T> palette)
      Mappings:
      Namespace Name Mixin selector
      named <init> Lnet/minecraft/world/chunk/PalettedContainer;<init>(Lnet/minecraft/world/chunk/PaletteProvider;Lnet/minecraft/world/chunk/PaletteType;Lnet/minecraft/util/collection/PaletteStorage;Lnet/minecraft/world/chunk/Palette;)V
      intermediary <init> Lnet/minecraft/class_2841;<init>(Lnet/minecraft/class_6563;Lnet/minecraft/class_11895;Lnet/minecraft/class_6490;Lnet/minecraft/class_2837;)V
      official <init> Lemd;<init>(Lemi;Lelp;Lbdt;Lemb;)V
    • PalettedContainer

      private PalettedContainer(PalettedContainer<T> container)
      Mappings:
      Namespace Name Mixin selector
      named <init> Lnet/minecraft/world/chunk/PalettedContainer;<init>(Lnet/minecraft/world/chunk/PalettedContainer;)V
      intermediary <init> Lnet/minecraft/class_2841;<init>(Lnet/minecraft/class_2841;)V
      official <init> Lemd;<init>(Lemd;)V
    • PalettedContainer

      public PalettedContainer(T defaultValue, PaletteProvider<T> paletteProvider)
      Mappings:
      Namespace Name Mixin selector
      named <init> Lnet/minecraft/world/chunk/PalettedContainer;<init>(Ljava/lang/Object;Lnet/minecraft/world/chunk/PaletteProvider;)V
      intermediary <init> Lnet/minecraft/class_2841;<init>(Ljava/lang/Object;Lnet/minecraft/class_6563;)V
      official <init> Lemd;<init>(Ljava/lang/Object;Lemi;)V
  • Method Details

    • lock

      public void lock()
      Acquires the semaphore on this container, and crashes if it cannot be acquired.
      Mappings:
      Namespace Name Mixin selector
      named lock Lnet/minecraft/world/chunk/PalettedContainer;lock()V
      intermediary method_12334 Lnet/minecraft/class_2841;method_12334()V
      official b Lemd;b()V
    • unlock

      public void unlock()
      Releases the semaphore on this container.
      Mappings:
      Namespace Name Mixin selector
      named unlock Lnet/minecraft/world/chunk/PalettedContainer;unlock()V
      intermediary method_12335 Lnet/minecraft/class_2841;method_12335()V
      official c Lemd;c()V
    • createPalettedContainerCodec

      public static <T> com.mojang.serialization.Codec<PalettedContainer<T>> createPalettedContainerCodec(com.mojang.serialization.Codec<T> entryCodec, PaletteProvider<T> provider, T defaultValue)
      Mappings:
      Namespace Name Mixin selector
      named createPalettedContainerCodec Lnet/minecraft/world/chunk/PalettedContainer;createPalettedContainerCodec(Lcom/mojang/serialization/Codec;Lnet/minecraft/world/chunk/PaletteProvider;Ljava/lang/Object;)Lcom/mojang/serialization/Codec;
      intermediary method_44343 Lnet/minecraft/class_2841;method_44343(Lcom/mojang/serialization/Codec;Lnet/minecraft/class_6563;Ljava/lang/Object;)Lcom/mojang/serialization/Codec;
      official a Lemd;a(Lcom/mojang/serialization/Codec;Lemi;Ljava/lang/Object;)Lcom/mojang/serialization/Codec;
    • createReadableContainerCodec

      public static <T> com.mojang.serialization.Codec<ReadableContainer<T>> createReadableContainerCodec(com.mojang.serialization.Codec<T> entryCodec, PaletteProvider<T> provider, T defaultValue)
      Mappings:
      Namespace Name Mixin selector
      named createReadableContainerCodec Lnet/minecraft/world/chunk/PalettedContainer;createReadableContainerCodec(Lcom/mojang/serialization/Codec;Lnet/minecraft/world/chunk/PaletteProvider;Ljava/lang/Object;)Lcom/mojang/serialization/Codec;
      intermediary method_44347 Lnet/minecraft/class_2841;method_44347(Lcom/mojang/serialization/Codec;Lnet/minecraft/class_6563;Ljava/lang/Object;)Lcom/mojang/serialization/Codec;
      official b Lemd;b(Lcom/mojang/serialization/Codec;Lemi;Ljava/lang/Object;)Lcom/mojang/serialization/Codec;
    • createCodec

      private static <T, C extends ReadableContainer<T>> com.mojang.serialization.Codec<C> createCodec(com.mojang.serialization.Codec<T> entryCodec, PaletteProvider<T> provider, T defaultValue, ReadableContainer.Reader<T,C> reader)
      Creates a codec for a paletted container with a specific palette provider.
      Returns:
      the created codec
      Mappings:
      Namespace Name Mixin selector
      named createCodec Lnet/minecraft/world/chunk/PalettedContainer;createCodec(Lcom/mojang/serialization/Codec;Lnet/minecraft/world/chunk/PaletteProvider;Ljava/lang/Object;Lnet/minecraft/world/chunk/ReadableContainer$Reader;)Lcom/mojang/serialization/Codec;
      intermediary method_38298 Lnet/minecraft/class_2841;method_38298(Lcom/mojang/serialization/Codec;Lnet/minecraft/class_6563;Ljava/lang/Object;Lnet/minecraft/class_7522$class_7523;)Lcom/mojang/serialization/Codec;
      official a Lemd;a(Lcom/mojang/serialization/Codec;Lemi;Ljava/lang/Object;Lemf$b;)Lcom/mojang/serialization/Codec;
    • getCompatibleData

      private PalettedContainer.Data<T> getCompatibleData(@Nullable @Nullable PalettedContainer.Data<T> previousData, int bits)
      Returns a compatible data object for the given entry bits size. This may return a new data object or return previousData if it can be reused.
      Parameters:
      previousData - the previous data, may be reused if suitable
      bits - the number of bits each entry uses
      Returns:
      a compatible data object for the given entry bits size
      Mappings:
      Namespace Name Mixin selector
      named getCompatibleData Lnet/minecraft/world/chunk/PalettedContainer;getCompatibleData(Lnet/minecraft/world/chunk/PalettedContainer$Data;I)Lnet/minecraft/world/chunk/PalettedContainer$Data;
      intermediary method_38297 Lnet/minecraft/class_2841;method_38297(Lnet/minecraft/class_2841$class_6561;I)Lnet/minecraft/class_2841$class_6561;
      official a Lemd;a(Lemd$b;I)Lemd$b;
    • onResize

      public int onResize(int newBits, T object)
      Callback for a palette's request to resize to at least newBits for each entry and to update the storage correspondingly in order to accommodate the new object. After the resize is completed in this method, returns the ID assigned to the object in the updated palette.
      Specified by:
      onResize in interface PaletteResizeListener<T>
      Returns:
      the ID for the object in the (possibly new) palette
      Mappings:
      Namespace Name Mixin selector
      named onResize Lnet/minecraft/world/chunk/PaletteResizeListener;onResize(ILjava/lang/Object;)I
      intermediary onResize Lnet/minecraft/class_2835;onResize(ILjava/lang/Object;)I
      official onResize Lemc;onResize(ILjava/lang/Object;)I
    • swap

      public T swap(int x, int y, int z, T value)
      Mappings:
      Namespace Name Mixin selector
      named swap Lnet/minecraft/world/chunk/PalettedContainer;swap(IIILjava/lang/Object;)Ljava/lang/Object;
      intermediary method_12328 Lnet/minecraft/class_2841;method_12328(IIILjava/lang/Object;)Ljava/lang/Object;
      official a Lemd;a(IIILjava/lang/Object;)Ljava/lang/Object;
    • swapUnsafe

      public T swapUnsafe(int x, int y, int z, T value)
      Mappings:
      Namespace Name Mixin selector
      named swapUnsafe Lnet/minecraft/world/chunk/PalettedContainer;swapUnsafe(IIILjava/lang/Object;)Ljava/lang/Object;
      intermediary method_16678 Lnet/minecraft/class_2841;method_16678(IIILjava/lang/Object;)Ljava/lang/Object;
      official b Lemd;b(IIILjava/lang/Object;)Ljava/lang/Object;
    • swap

      private T swap(int index, T value)
      Mappings:
      Namespace Name Mixin selector
      named swap Lnet/minecraft/world/chunk/PalettedContainer;swap(ILjava/lang/Object;)Ljava/lang/Object;
      intermediary method_12336 Lnet/minecraft/class_2841;method_12336(ILjava/lang/Object;)Ljava/lang/Object;
      official a Lemd;a(ILjava/lang/Object;)Ljava/lang/Object;
    • set

      public void set(int x, int y, int z, T value)
      Mappings:
      Namespace Name Mixin selector
      named set Lnet/minecraft/world/chunk/PalettedContainer;set(IIILjava/lang/Object;)V
      intermediary method_35321 Lnet/minecraft/class_2841;method_35321(IIILjava/lang/Object;)V
      official c Lemd;c(IIILjava/lang/Object;)V
    • set

      private void set(int index, T value)
      Mappings:
      Namespace Name Mixin selector
      named set Lnet/minecraft/world/chunk/PalettedContainer;set(ILjava/lang/Object;)V
      intermediary method_12322 Lnet/minecraft/class_2841;method_12322(ILjava/lang/Object;)V
      official b Lemd;b(ILjava/lang/Object;)V
    • get

      public T get(int x, int y, int z)
      Specified by:
      get in interface ReadableContainer<T>
      Mappings:
      Namespace Name Mixin selector
      named get Lnet/minecraft/world/chunk/ReadableContainer;get(III)Ljava/lang/Object;
      intermediary method_12321 Lnet/minecraft/class_7522;method_12321(III)Ljava/lang/Object;
      official a Lemf;a(III)Ljava/lang/Object;
    • get

      protected T get(int index)
      Mappings:
      Namespace Name Mixin selector
      named get Lnet/minecraft/world/chunk/PalettedContainer;get(I)Ljava/lang/Object;
      intermediary method_12331 Lnet/minecraft/class_2841;method_12331(I)Ljava/lang/Object;
      official a Lemd;a(I)Ljava/lang/Object;
    • forEachValue

      public void forEachValue(Consumer<T> action)
      Specified by:
      forEachValue in interface ReadableContainer<T>
      Mappings:
      Namespace Name Mixin selector
      named forEachValue Lnet/minecraft/world/chunk/ReadableContainer;forEachValue(Ljava/util/function/Consumer;)V
      intermediary method_39793 Lnet/minecraft/class_7522;method_39793(Ljava/util/function/Consumer;)V
      official a Lemf;a(Ljava/util/function/Consumer;)V
    • readPacket

      public void readPacket(PacketByteBuf buf)
      Reads data from the packet byte buffer into this container. Previous data in this container is discarded.
      Parameters:
      buf - the packet byte buffer
      Mappings:
      Namespace Name Mixin selector
      named readPacket Lnet/minecraft/world/chunk/PalettedContainer;readPacket(Lnet/minecraft/network/PacketByteBuf;)V
      intermediary method_12326 Lnet/minecraft/class_2841;method_12326(Lnet/minecraft/class_2540;)V
      official a Lemd;a(Lwn;)V
    • writePacket

      public void writePacket(PacketByteBuf buf)
      Writes this container to the packet byte buffer.
      Specified by:
      writePacket in interface ReadableContainer<T>
      Parameters:
      buf - the packet byte buffer
      Mappings:
      Namespace Name Mixin selector
      named writePacket Lnet/minecraft/world/chunk/ReadableContainer;writePacket(Lnet/minecraft/network/PacketByteBuf;)V
      intermediary method_12325 Lnet/minecraft/class_7522;method_12325(Lnet/minecraft/class_2540;)V
      official b Lemf;b(Lwn;)V
    • read

      public static <T> com.mojang.serialization.DataResult<PalettedContainer<T>> read(PaletteProvider<T> provider, ReadableContainer.Serialized<T> serialized)
      Mappings:
      Namespace Name Mixin selector
      named read Lnet/minecraft/world/chunk/PalettedContainer;read(Lnet/minecraft/world/chunk/PaletteProvider;Lnet/minecraft/world/chunk/ReadableContainer$Serialized;)Lcom/mojang/serialization/DataResult;
      intermediary method_44346 Lnet/minecraft/class_2841;method_44346(Lnet/minecraft/class_6563;Lnet/minecraft/class_7522$class_6562;)Lcom/mojang/serialization/DataResult;
      official a Lemd;a(Lemi;Lemf$a;)Lcom/mojang/serialization/DataResult;
    • serialize

      public ReadableContainer.Serialized<T> serialize(PaletteProvider<T> provider)
      Specified by:
      serialize in interface ReadableContainer<T>
      Mappings:
      Namespace Name Mixin selector
      named serialize Lnet/minecraft/world/chunk/ReadableContainer;serialize(Lnet/minecraft/world/chunk/PaletteProvider;)Lnet/minecraft/world/chunk/ReadableContainer$Serialized;
      intermediary method_44345 Lnet/minecraft/class_7522;method_44345(Lnet/minecraft/class_6563;)Lnet/minecraft/class_7522$class_6562;
      official a Lemf;a(Lemi;)Lemf$a;
    • repack

      private static <T> int[] repack(PaletteStorage storage, Palette<T> oldPalette, Palette<T> newPalette)
      Mappings:
      Namespace Name Mixin selector
      named repack Lnet/minecraft/world/chunk/PalettedContainer;repack(Lnet/minecraft/util/collection/PaletteStorage;Lnet/minecraft/world/chunk/Palette;Lnet/minecraft/world/chunk/Palette;)[I
      intermediary method_74156 Lnet/minecraft/class_2841;method_74156(Lnet/minecraft/class_6490;Lnet/minecraft/class_2837;Lnet/minecraft/class_2837;)[I
      official a Lemd;a(Lbdt;Lemb;Lemb;)[I
    • getPacketSize

      public int getPacketSize()
      Specified by:
      getPacketSize in interface ReadableContainer<T>
      Mappings:
      Namespace Name Mixin selector
      named getPacketSize Lnet/minecraft/world/chunk/ReadableContainer;getPacketSize()I
      intermediary method_12327 Lnet/minecraft/class_7522;method_12327()I
      official d Lemf;d()I
    • getElementBits

      public int getElementBits()
      Specified by:
      getElementBits in interface ReadableContainer<T>
      Mappings:
      Namespace Name Mixin selector
      named getElementBits Lnet/minecraft/world/chunk/ReadableContainer;getElementBits()I
      intermediary method_74157 Lnet/minecraft/class_7522;method_74157()I
      official e Lemf;e()I
    • hasAny

      public boolean hasAny(Predicate<T> predicate)
      Returns true if any object in this container's palette matches this predicate.
      Specified by:
      hasAny in interface ReadableContainer<T>
      Returns:
      true if any object in this container's palette matches this predicate
      Mappings:
      Namespace Name Mixin selector
      named hasAny Lnet/minecraft/world/chunk/ReadableContainer;hasAny(Ljava/util/function/Predicate;)Z
      intermediary method_19526 Lnet/minecraft/class_7522;method_19526(Ljava/util/function/Predicate;)Z
      official a Lemf;a(Ljava/util/function/Predicate;)Z
    • copy

      public PalettedContainer<T> copy()
      Specified by:
      copy in interface ReadableContainer<T>
      Mappings:
      Namespace Name Mixin selector
      named copy Lnet/minecraft/world/chunk/ReadableContainer;copy()Lnet/minecraft/world/chunk/PalettedContainer;
      intermediary method_39957 Lnet/minecraft/class_7522;method_39957()Lnet/minecraft/class_2841;
      official f Lemf;f()Lemd;
    • slice

      public PalettedContainer<T> slice()
      Specified by:
      slice in interface ReadableContainer<T>
      Mappings:
      Namespace Name Mixin selector
      named slice Lnet/minecraft/world/chunk/ReadableContainer;slice()Lnet/minecraft/world/chunk/PalettedContainer;
      intermediary method_44350 Lnet/minecraft/class_7522;method_44350()Lnet/minecraft/class_2841;
      official g Lemf;g()Lemd;
    • count

      public void count(PalettedContainer.Counter<T> counter)
      Specified by:
      count in interface ReadableContainer<T>
      Mappings:
      Namespace Name Mixin selector
      named count Lnet/minecraft/world/chunk/ReadableContainer;count(Lnet/minecraft/world/chunk/PalettedContainer$Counter;)V
      intermediary method_21732 Lnet/minecraft/class_7522;method_21732(Lnet/minecraft/class_2841$class_4464;)V
      official a Lemf;a(Lemd$a;)V