37 lines
1 KiB
Java
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);
|
|
}
|
|
}
|