From 7c651928ea94fb1d69424f882cd5622e0a84b502 Mon Sep 17 00:00:00 2001 From: "Dylan T." Date: Fri, 27 Jun 2025 16:01:14 +0000 Subject: [PATCH] Simplify LevelDB saveChunk using layers array pattern - Use the same pattern as ChunkSerializer by building an array of non-empty layers - Cleaner and more maintainable code with fewer changes from original - Remove inline comment for cleaner appearance --- src/world/format/io/leveldb/LevelDB.php | 27 ++++++++++--------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/src/world/format/io/leveldb/LevelDB.php b/src/world/format/io/leveldb/LevelDB.php index a82d34c28..ebf8257d0 100644 --- a/src/world/format/io/leveldb/LevelDB.php +++ b/src/world/format/io/leveldb/LevelDB.php @@ -775,23 +775,18 @@ class LevelDB extends BaseWorldProvider implements WritableWorldProvider{ $subStream = new BinaryStream(); $subStream->putByte(self::CURRENT_LEVEL_SUBCHUNK_VERSION); - $blockLayer = $subChunk->getBlockLayer(); - $liquidLayer = $subChunk->getLiquidLayer(); - - $isBlockLayerEmpty = $subChunk->isBlockLayerEmpty(); - $isLiquidLayerEmpty = $subChunk->isLiquidLayerEmpty(); - - $layerCount = 0; - if(!$isBlockLayerEmpty) $layerCount++; - if(!$isLiquidLayerEmpty) $layerCount++; - - $subStream->putByte($layerCount); - - if(!$isBlockLayerEmpty){ - $this->serializeBlockPalette($subStream, $blockLayer); + $layers = []; + if(!$subChunk->isBlockLayerEmpty()){ + $layers[] = $subChunk->getBlockLayer(); } - if(!$isLiquidLayerEmpty){ - $this->serializeBlockPalette($subStream, $liquidLayer); + if(!$subChunk->isLiquidLayerEmpty()){ + $layers[] = $subChunk->getLiquidLayer(); + } + + $subStream->putByte(count($layers)); + + foreach($layers as $layer){ + $this->serializeBlockPalette($subStream, $layer); } $write->put($key, $subStream->getBuffer());