From 3ba1c764144586b97a3164c8b5ae089560ffd3b3 Mon Sep 17 00:00:00 2001 From: mcrcortex <18544518+MCRcortex@users.noreply.github.com> Date: Thu, 8 Aug 2024 19:54:22 +1000 Subject: [PATCH] Only import full chunk sections --- .../voxy/client/importers/WorldImporter.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/me/cortex/voxy/client/importers/WorldImporter.java b/src/main/java/me/cortex/voxy/client/importers/WorldImporter.java index be3ae7e9..305b4a21 100644 --- a/src/main/java/me/cortex/voxy/client/importers/WorldImporter.java +++ b/src/main/java/me/cortex/voxy/client/importers/WorldImporter.java @@ -19,6 +19,7 @@ import net.minecraft.world.World; import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.BiomeKeys; import net.minecraft.world.chunk.ChunkNibbleArray; +import net.minecraft.world.chunk.ChunkStatus; import net.minecraft.world.chunk.PalettedContainer; import net.minecraft.world.chunk.ReadableContainer; import net.minecraft.world.storage.ChunkCompressionFormat; @@ -256,6 +257,13 @@ public class WorldImporter { } private void importChunkNBT(NbtCompound chunk) { + if (!chunk.contains("Status")) { + return; + } + //Dont process non full chunk sections + if (ChunkStatus.byId(chunk.getString("Status")) != ChunkStatus.FULL) { + return; + } try { int x = chunk.getInt("xPos"); int z = chunk.getInt("zPos"); @@ -272,12 +280,6 @@ public class WorldImporter { this.updateCallback.update(this.chunksProcessed.incrementAndGet(), this.estimatedTotalChunks.get()); } - private static int getIndex(int x, int y, int z) { - return y << 8 | z << 4 | x; - } - - - private static final ThreadLocal SECTION_CACHE = ThreadLocal.withInitial(VoxelizedSection::createEmpty); private static final Codec> BLOCK_STATE_CODEC = PalettedContainer.createPalettedContainerCodec(Block.STATE_IDS, BlockState.CODEC, PalettedContainer.PaletteProvider.BLOCK_STATE, Blocks.AIR.getDefaultState()); private void importSectionNBT(int x, int y, int z, NbtCompound section) {