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 dvo
  • 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 Ldvo;a:I
    • dummyListener

      private final PaletteResizeListener<T> dummyListener
      Mappings:
      Namespace Name Mixin selector
      named dummyListener Lnet/minecraft/world/chunk/PalettedContainer;dummyListener:Lnet/minecraft/world/chunk/PaletteResizeListener;
      intermediary field_34558 Lnet/minecraft/class_2841;field_34558:Lnet/minecraft/class_2835;
      official b Ldvo;b:Ldvn;
    • idList

      private final IndexedIterable<T> idList
      Mappings:
      Namespace Name Mixin selector
      named idList Lnet/minecraft/world/chunk/PalettedContainer;idList:Lnet/minecraft/util/collection/IndexedIterable;
      intermediary field_34559 Lnet/minecraft/class_2841;field_34559:Lnet/minecraft/class_2359;
      official c Ldvo;c:Ljr;
    • 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 d Ldvo;d:Ldvo$c;
    • paletteProvider

      private final PalettedContainer.PaletteProvider paletteProvider
      Mappings:
      Namespace Name Mixin selector
      named paletteProvider Lnet/minecraft/world/chunk/PalettedContainer;paletteProvider:Lnet/minecraft/world/chunk/PalettedContainer$PaletteProvider;
      intermediary field_34561 Lnet/minecraft/class_2841;field_34561:Lnet/minecraft/class_2841$class_6563;
      official e Ldvo;e:Ldvo$d;
    • 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 f Ldvo;f:Lazm;
  • Constructor Details

    • PalettedContainer

      public PalettedContainer(IndexedIterable<T> idList, PalettedContainer.PaletteProvider paletteProvider, PalettedContainer.DataProvider<T> dataProvider, PaletteStorage storage, List<T> paletteEntries)
      Mappings:
      Namespace Name Mixin selector
      named <init> Lnet/minecraft/world/chunk/PalettedContainer;<init>(Lnet/minecraft/util/collection/IndexedIterable;Lnet/minecraft/world/chunk/PalettedContainer$PaletteProvider;Lnet/minecraft/world/chunk/PalettedContainer$DataProvider;Lnet/minecraft/util/collection/PaletteStorage;Ljava/util/List;)V
      intermediary <init> Lnet/minecraft/class_2841;<init>(Lnet/minecraft/class_2359;Lnet/minecraft/class_2841$class_6563;Lnet/minecraft/class_2841$class_6560;Lnet/minecraft/class_6490;Ljava/util/List;)V
      official <init> Ldvo;<init>(Ljr;Ldvo$d;Ldvo$a;Laxb;Ljava/util/List;)V
    • PalettedContainer

      private PalettedContainer(IndexedIterable<T> idList, PalettedContainer.PaletteProvider paletteProvider, PalettedContainer.Data<T> data)
      Mappings:
      Namespace Name Mixin selector
      named <init> Lnet/minecraft/world/chunk/PalettedContainer;<init>(Lnet/minecraft/util/collection/IndexedIterable;Lnet/minecraft/world/chunk/PalettedContainer$PaletteProvider;Lnet/minecraft/world/chunk/PalettedContainer$Data;)V
      intermediary <init> Lnet/minecraft/class_2841;<init>(Lnet/minecraft/class_2359;Lnet/minecraft/class_2841$class_6563;Lnet/minecraft/class_2841$class_6561;)V
      official <init> Ldvo;<init>(Ljr;Ldvo$d;Ldvo$c;)V
    • PalettedContainer

      public PalettedContainer(IndexedIterable<T> idList, T object, PalettedContainer.PaletteProvider paletteProvider)
      Mappings:
      Namespace Name Mixin selector
      named <init> Lnet/minecraft/world/chunk/PalettedContainer;<init>(Lnet/minecraft/util/collection/IndexedIterable;Ljava/lang/Object;Lnet/minecraft/world/chunk/PalettedContainer$PaletteProvider;)V
      intermediary <init> Lnet/minecraft/class_2841;<init>(Lnet/minecraft/class_2359;Ljava/lang/Object;Lnet/minecraft/class_2841$class_6563;)V
      official <init> Ldvo;<init>(Ljr;Ljava/lang/Object;Ldvo$d;)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 a Ldvo;a()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 b Ldvo;b()V
    • createPalettedContainerCodec

      public static <T> com.mojang.serialization.Codec<PalettedContainer<T>> createPalettedContainerCodec(IndexedIterable<T> idList, com.mojang.serialization.Codec<T> entryCodec, PalettedContainer.PaletteProvider paletteProvider, T defaultValue)
      Mappings:
      Namespace Name Mixin selector
      named createPalettedContainerCodec Lnet/minecraft/world/chunk/PalettedContainer;createPalettedContainerCodec(Lnet/minecraft/util/collection/IndexedIterable;Lcom/mojang/serialization/Codec;Lnet/minecraft/world/chunk/PalettedContainer$PaletteProvider;Ljava/lang/Object;)Lcom/mojang/serialization/Codec;
      intermediary method_44343 Lnet/minecraft/class_2841;method_44343(Lnet/minecraft/class_2359;Lcom/mojang/serialization/Codec;Lnet/minecraft/class_2841$class_6563;Ljava/lang/Object;)Lcom/mojang/serialization/Codec;
      official a Ldvo;a(Ljr;Lcom/mojang/serialization/Codec;Ldvo$d;Ljava/lang/Object;)Lcom/mojang/serialization/Codec;
    • createReadableContainerCodec

      public static <T> com.mojang.serialization.Codec<ReadableContainer<T>> createReadableContainerCodec(IndexedIterable<T> idList, com.mojang.serialization.Codec<T> entryCodec, PalettedContainer.PaletteProvider paletteProvider, T defaultValue)
      Mappings:
      Namespace Name Mixin selector
      named createReadableContainerCodec Lnet/minecraft/world/chunk/PalettedContainer;createReadableContainerCodec(Lnet/minecraft/util/collection/IndexedIterable;Lcom/mojang/serialization/Codec;Lnet/minecraft/world/chunk/PalettedContainer$PaletteProvider;Ljava/lang/Object;)Lcom/mojang/serialization/Codec;
      intermediary method_44347 Lnet/minecraft/class_2841;method_44347(Lnet/minecraft/class_2359;Lcom/mojang/serialization/Codec;Lnet/minecraft/class_2841$class_6563;Ljava/lang/Object;)Lcom/mojang/serialization/Codec;
      official b Ldvo;b(Ljr;Lcom/mojang/serialization/Codec;Ldvo$d;Ljava/lang/Object;)Lcom/mojang/serialization/Codec;
    • createCodec

      private static <T, C extends ReadableContainer<T>> com.mojang.serialization.Codec<C> createCodec(IndexedIterable<T> idList, com.mojang.serialization.Codec<T> entryCodec, PalettedContainer.PaletteProvider provider, T defaultValue, ReadableContainer.Reader<T,C> reader)
      Creates a codec for a paletted container with a specific palette provider.
      Parameters:
      entryCodec - the codec for each entry in the palette
      provider - the palette provider that controls how the data are serialized and what types of palette are used for what entry bit sizes
      Returns:
      the created codec
      Mappings:
      Namespace Name Mixin selector
      named createCodec Lnet/minecraft/world/chunk/PalettedContainer;createCodec(Lnet/minecraft/util/collection/IndexedIterable;Lcom/mojang/serialization/Codec;Lnet/minecraft/world/chunk/PalettedContainer$PaletteProvider;Ljava/lang/Object;Lnet/minecraft/world/chunk/ReadableContainer$Reader;)Lcom/mojang/serialization/Codec;
      intermediary method_38298 Lnet/minecraft/class_2841;method_38298(Lnet/minecraft/class_2359;Lcom/mojang/serialization/Codec;Lnet/minecraft/class_2841$class_6563;Ljava/lang/Object;Lnet/minecraft/class_7522$class_7523;)Lcom/mojang/serialization/Codec;
      official a Ldvo;a(Ljr;Lcom/mojang/serialization/Codec;Ldvo$d;Ljava/lang/Object;Ldvp$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 Ldvo;a(Ldvo$c;I)Ldvo$c;
    • 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 Ldvn;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 Ldvo;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 Ldvo;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 Ldvo;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 Ldvo;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 Ldvo;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 Ldvp;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 Ldvo;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 Ldvp;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 Ldvo;a(Lvv;)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 Ldvp;b(Lvv;)V
    • read

      private static <T> com.mojang.serialization.DataResult<PalettedContainer<T>> read(IndexedIterable<T> idList, PalettedContainer.PaletteProvider paletteProvider, ReadableContainer.Serialized<T> serialized)
      Mappings:
      Namespace Name Mixin selector
      named read Lnet/minecraft/world/chunk/PalettedContainer;read(Lnet/minecraft/util/collection/IndexedIterable;Lnet/minecraft/world/chunk/PalettedContainer$PaletteProvider;Lnet/minecraft/world/chunk/ReadableContainer$Serialized;)Lcom/mojang/serialization/DataResult;
      intermediary method_44346 Lnet/minecraft/class_2841;method_44346(Lnet/minecraft/class_2359;Lnet/minecraft/class_2841$class_6563;Lnet/minecraft/class_7522$class_6562;)Lcom/mojang/serialization/DataResult;
      official a Ldvo;a(Ljr;Ldvo$d;Ldvp$a;)Lcom/mojang/serialization/DataResult;
    • serialize

      public ReadableContainer.Serialized<T> serialize(IndexedIterable<T> idList, PalettedContainer.PaletteProvider paletteProvider)
      Specified by:
      serialize in interface ReadableContainer<T>
      Mappings:
      Namespace Name Mixin selector
      named serialize Lnet/minecraft/world/chunk/ReadableContainer;serialize(Lnet/minecraft/util/collection/IndexedIterable;Lnet/minecraft/world/chunk/PalettedContainer$PaletteProvider;)Lnet/minecraft/world/chunk/ReadableContainer$Serialized;
      intermediary method_44345 Lnet/minecraft/class_7522;method_44345(Lnet/minecraft/class_2359;Lnet/minecraft/class_2841$class_6563;)Lnet/minecraft/class_7522$class_6562;
      official a Ldvp;a(Ljr;Ldvo$d;)Ldvp$a;
    • applyEach

      private static <T> void applyEach(int[] is, IntUnaryOperator applier)
      Applies applier to each value of is, modifying the array.
      Implementation Note:
      This caches the last value to be applied and its result, so applier might not be called for all values. Note that this also causes the applier to not be applied for initial -1s.
      Mappings:
      Namespace Name Mixin selector
      named applyEach Lnet/minecraft/world/chunk/PalettedContainer;applyEach([ILjava/util/function/IntUnaryOperator;)V
      intermediary method_39894 Lnet/minecraft/class_2841;method_39894([ILjava/util/function/IntUnaryOperator;)V
      official a Ldvo;a([ILjava/util/function/IntUnaryOperator;)V
    • 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 c Ldvp;c()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 Ldvp;a(Ljava/util/function/Predicate;)Z
    • copy

      public PalettedContainer<T> copy()
      Mappings:
      Namespace Name Mixin selector
      named copy Lnet/minecraft/world/chunk/PalettedContainer;copy()Lnet/minecraft/world/chunk/PalettedContainer;
      intermediary method_39957 Lnet/minecraft/class_2841;method_39957()Lnet/minecraft/class_2841;
      official d Ldvo;d()Ldvo;
    • 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 e Ldvp;e()Ldvo;
    • 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 Ldvp;a(Ldvo$b;)V