minecraft-src/net/minecraft/world/level/chunk/PalettedContainerRO.java
2025-07-04 02:00:41 +03:00

37 lines
1 KiB
Java

package net.minecraft.world.level.chunk;
import com.mojang.serialization.DataResult;
import java.util.List;
import java.util.Optional;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.stream.LongStream;
import net.minecraft.core.IdMap;
import net.minecraft.network.FriendlyByteBuf;
public interface PalettedContainerRO<T> {
T get(int x, int y, int z);
void getAll(Consumer<T> consumer);
void write(FriendlyByteBuf buffer);
int getSerializedSize();
boolean maybeHas(Predicate<T> filter);
void count(PalettedContainer.CountConsumer<T> countConsumer);
PalettedContainer<T> copy();
PalettedContainer<T> recreate();
PalettedContainerRO.PackedData<T> pack(IdMap<T> registry, PalettedContainer.Strategy strategy);
public record PackedData<T>(List<T> paletteEntries, Optional<LongStream> storage) {
}
public interface Unpacker<T, C extends PalettedContainerRO<T>> {
DataResult<C> read(IdMap<T> idMap, PalettedContainer.Strategy strategy, PalettedContainerRO.PackedData<T> packedData);
}
}