CLASS net/minecraft/class_2841 net/minecraft/world/chunk/PalettedContainer
	COMMENT A paletted container stores objects in 3D voxels as small integer indices,
	COMMENT governed by "palettes" that map between these objects and indices.
	COMMENT
	COMMENT @see Palette
	FIELD field_34558 dummyListener Lnet/minecraft/class_2835;
	FIELD field_34559 idList Lnet/minecraft/class_2359;
	FIELD field_34560 data Lnet/minecraft/class_2841$class_6561;
	FIELD field_34561 paletteProvider Lnet/minecraft/class_2841$class_6563;
	FIELD field_36300 lockHelper Lnet/minecraft/class_5798;
	METHOD <init> (Lnet/minecraft/class_2359;Ljava/lang/Object;Lnet/minecraft/class_2841$class_6563;)V
		ARG 1 idList
		ARG 2 object
		ARG 3 paletteProvider
	METHOD <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
		ARG 1 idList
		ARG 2 paletteProvider
		ARG 3 dataProvider
		ARG 4 storage
		ARG 5 paletteEntries
	METHOD <init> (Lnet/minecraft/class_2359;Lnet/minecraft/class_2841$class_6563;Lnet/minecraft/class_2841$class_6561;)V
		ARG 1 idList
		ARG 2 paletteProvider
		ARG 3 data
	METHOD method_12322 set (ILjava/lang/Object;)V
		ARG 1 index
		ARG 2 value
	METHOD method_12326 readPacket (Lnet/minecraft/class_2540;)V
		COMMENT Reads data from the packet byte buffer into this container. Previous data
		COMMENT in this container is discarded.
		ARG 1 buf
			COMMENT the packet byte buffer
	METHOD method_12328 swap (IIILjava/lang/Object;)Ljava/lang/Object;
		ARG 1 x
		ARG 2 y
		ARG 3 z
		ARG 4 value
	METHOD method_12331 get (I)Ljava/lang/Object;
		ARG 1 index
	METHOD method_12333 (ILjava/lang/Object;)I
		ARG 0 newSize
		ARG 1 added
	METHOD method_12334 lock ()V
		COMMENT Acquires the semaphore on this container, and crashes if it cannot be
		COMMENT acquired.
	METHOD method_12335 unlock ()V
		COMMENT Releases the semaphore on this container.
	METHOD method_12336 swap (ILjava/lang/Object;)Ljava/lang/Object;
		ARG 1 index
		ARG 2 value
	METHOD method_16678 swapUnsafe (IIILjava/lang/Object;)Ljava/lang/Object;
		ARG 1 x
		ARG 2 y
		ARG 3 z
		ARG 4 value
	METHOD method_21733 (Lnet/minecraft/class_2841$class_4464;Lit/unimi/dsi/fastutil/ints/Int2IntMap$Entry;)V
		ARG 2 entry
	METHOD method_21734 increment (Lit/unimi/dsi/fastutil/ints/Int2IntOpenHashMap;I)V
		ARG 1 key
	METHOD method_35321 set (IIILjava/lang/Object;)V
		ARG 1 x
		ARG 2 y
		ARG 3 z
		ARG 4 value
	METHOD method_38296 (Lcom/mojang/serialization/Codec;Ljava/lang/Object;Lcom/mojang/serialization/codecs/RecordCodecBuilder$Instance;)Lcom/mojang/datafixers/kinds/App;
		ARG 2 instance
	METHOD method_38297 getCompatibleData (Lnet/minecraft/class_2841$class_6561;I)Lnet/minecraft/class_2841$class_6561;
		COMMENT {@return a compatible data object for the given entry {@code bits} size}
		COMMENT This may return a new data object or return {@code previousData} if it
		COMMENT can be reused.
		ARG 1 previousData
			COMMENT the previous data, may be reused if suitable
		ARG 2 bits
			COMMENT the number of bits each entry uses
	METHOD method_38298 createCodec (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;
		COMMENT Creates a codec for a paletted container with a specific palette provider.
		COMMENT
		COMMENT @return the created codec
		ARG 0 idList
		ARG 1 entryCodec
			COMMENT the codec for each entry in the palette
		ARG 2 provider
			COMMENT the palette provider that controls how the data are serialized and what
			COMMENT types of palette are used for what entry bit sizes
		ARG 3 defaultValue
		ARG 4 reader
	METHOD method_38302 (Lnet/minecraft/class_2359;Lnet/minecraft/class_2841$class_6563;Lnet/minecraft/class_7522;)Lnet/minecraft/class_7522$class_6562;
		ARG 2 container
	METHOD method_39794 (Ljava/util/function/Consumer;Lnet/minecraft/class_2837;I)V
		ARG 2 id
	METHOD method_39894 applyEach ([ILjava/util/function/IntUnaryOperator;)V
		COMMENT Applies {@code applier} to each value of {@code is}, modifying the array.
		COMMENT
		COMMENT @implNote This caches the last value to be applied and its result, so {@code applier}
		COMMENT might not be called for all values. Note that this also causes the applier to
		COMMENT not be applied for initial {@code -1}s.
		ARG 0 is
		ARG 1 applier
	METHOD method_39957 copy ()Lnet/minecraft/class_2841;
	METHOD method_44340 (Lnet/minecraft/class_2814;I)I
		ARG 2 id
	METHOD method_44341 (Lnet/minecraft/class_2841;)Lnet/minecraft/class_7522;
		ARG 0 result
	METHOD method_44342 (Lnet/minecraft/class_7522$class_7523;Lnet/minecraft/class_2359;Lnet/minecraft/class_2841$class_6563;Lnet/minecraft/class_7522$class_6562;)Lcom/mojang/serialization/DataResult;
		ARG 3 serialized
	METHOD method_44343 createPalettedContainerCodec (Lnet/minecraft/class_2359;Lcom/mojang/serialization/Codec;Lnet/minecraft/class_2841$class_6563;Ljava/lang/Object;)Lcom/mojang/serialization/Codec;
		ARG 0 idList
		ARG 1 entryCodec
		ARG 2 paletteProvider
		ARG 3 defaultValue
	METHOD method_44344 (Lnet/minecraft/class_2359;Lnet/minecraft/class_2837;I)I
		ARG 2 id
	METHOD method_44346 read (Lnet/minecraft/class_2359;Lnet/minecraft/class_2841$class_6563;Lnet/minecraft/class_7522$class_6562;)Lcom/mojang/serialization/DataResult;
		ARG 0 idList
		ARG 1 paletteProvider
		ARG 2 serialized
	METHOD method_44347 createReadableContainerCodec (Lnet/minecraft/class_2359;Lcom/mojang/serialization/Codec;Lnet/minecraft/class_2841$class_6563;Ljava/lang/Object;)Lcom/mojang/serialization/Codec;
		ARG 0 idList
		ARG 1 entryCodec
		ARG 2 paletteProvider
		ARG 3 defaultValue
	METHOD method_44348 (Lnet/minecraft/class_2359;Lnet/minecraft/class_2841$class_6563;Lnet/minecraft/class_7522$class_6562;)Lcom/mojang/serialization/DataResult;
		ARG 0 idListx
		ARG 1 paletteProviderx
		ARG 2 serialized
	METHOD method_44349 (ILjava/lang/Object;)I
		ARG 0 id
		ARG 1 value
	CLASS class_4464 Counter
		COMMENT A counter that receives a palette entry and its number of occurrences
		COMMENT in the container.
		METHOD accept (Ljava/lang/Object;I)V
			ARG 1 object
				COMMENT the palette entry
			ARG 2 count
				COMMENT the entry's number of occurrence
	CLASS class_6560 DataProvider
		COMMENT A palette data provider constructs an empty data for a paletted
		COMMENT container given a palette provider and a desired entry size in bits.
		FIELD comp_72 factory Lnet/minecraft/class_2837$class_6559;
			COMMENT the palette factory
		FIELD comp_73 bits I
			COMMENT the number of bits each element use
		METHOD comp_72 factory ()Lnet/minecraft/class_2837$class_6559;
		METHOD comp_73 bits ()I
		METHOD method_38305 createData (Lnet/minecraft/class_2359;Lnet/minecraft/class_2835;I)Lnet/minecraft/class_2841$class_6561;
			ARG 1 idList
			ARG 2 listener
			ARG 3 size
	CLASS class_6561 Data
		COMMENT Runtime representation of data in a paletted container.
		FIELD comp_118 storage Lnet/minecraft/class_6490;
			COMMENT the data
		FIELD comp_119 palette Lnet/minecraft/class_2837;
			COMMENT the palette for the storage
		FIELD comp_74 configuration Lnet/minecraft/class_2841$class_6560;
			COMMENT the data provider that derives the palette and storage of this data
		METHOD <init> (Lnet/minecraft/class_2841$class_6560;Lnet/minecraft/class_6490;Lnet/minecraft/class_2837;)V
			ARG 1 configuration
			ARG 2 storage
			ARG 3 palette
		METHOD comp_118 storage ()Lnet/minecraft/class_6490;
		METHOD comp_119 palette ()Lnet/minecraft/class_2837;
		METHOD comp_74 configuration ()Lnet/minecraft/class_2841$class_6560;
		METHOD method_38306 getPacketSize ()I
			COMMENT {@return the size of this data, in bytes, when written to a packet}
			COMMENT
			COMMENT @see #writePacket(PacketByteBuf)
		METHOD method_38308 importFrom (Lnet/minecraft/class_2837;Lnet/minecraft/class_6490;)V
			COMMENT Imports the data from the other {@code storage} with the other
			COMMENT {@code palette}.
			ARG 1 palette
			ARG 2 storage
		METHOD method_38309 writePacket (Lnet/minecraft/class_2540;)V
			ARG 1 buf
		METHOD method_44338 copy ()Lnet/minecraft/class_2841$class_6561;
	CLASS class_6563 PaletteProvider
		COMMENT A palette provider determines what type of palette to choose given the
		COMMENT bits used to represent each element. In addition, it controls how the
		COMMENT data in the serialized container is read based on the palette given.
		FIELD field_34566 SINGULAR Lnet/minecraft/class_2837$class_6559;
		FIELD field_34567 ARRAY Lnet/minecraft/class_2837$class_6559;
		FIELD field_34568 BI_MAP Lnet/minecraft/class_2837$class_6559;
		FIELD field_34569 BLOCK_STATE Lnet/minecraft/class_2841$class_6563;
			COMMENT A palette provider that stores {@code 4096} objects in a container.
			COMMENT Used in vanilla by block states in a chunk section.
		FIELD field_34570 BIOME Lnet/minecraft/class_2841$class_6563;
			COMMENT A palette provider that stores {@code 64} objects in a container.
			COMMENT Used in vanilla by biomes in a chunk section.
		FIELD field_34571 ID_LIST Lnet/minecraft/class_2837$class_6559;
		FIELD field_34572 edgeBits I
		METHOD <init> (I)V
			ARG 1 edgeBits
		METHOD method_38312 getContainerSize ()I
			COMMENT {@return the size of the container's data desired by this provider}
		METHOD method_38313 computeIndex (III)I
			COMMENT {@return the index of an object in the storage given its x, y, z coordinates}
			ARG 1 x
				COMMENT the x coordinate
			ARG 2 y
				COMMENT the y coordinate
			ARG 3 z
				COMMENT the z coordinate
		METHOD method_38314 createDataProvider (Lnet/minecraft/class_2359;I)Lnet/minecraft/class_2841$class_6560;
			COMMENT Creates a data provider that is suitable to represent objects with
			COMMENT {@code bits} size in the storage.
			COMMENT
			COMMENT @return the data provider
			ARG 1 idList
				COMMENT the id list that maps between objects and full integer IDs
			ARG 2 bits
				COMMENT the number of bits needed to represent all palette entries
		METHOD method_38315 getBits (Lnet/minecraft/class_2359;I)I
			ARG 1 idList
			ARG 2 size
