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
This commit is contained in:
Dylan T. 2025-06-27 16:01:14 +00:00
parent 48cc87d066
commit 7c651928ea

View File

@ -775,23 +775,18 @@ class LevelDB extends BaseWorldProvider implements WritableWorldProvider{
$subStream = new BinaryStream(); $subStream = new BinaryStream();
$subStream->putByte(self::CURRENT_LEVEL_SUBCHUNK_VERSION); $subStream->putByte(self::CURRENT_LEVEL_SUBCHUNK_VERSION);
$blockLayer = $subChunk->getBlockLayer(); $layers = [];
$liquidLayer = $subChunk->getLiquidLayer(); if(!$subChunk->isBlockLayerEmpty()){
$layers[] = $subChunk->getBlockLayer();
$isBlockLayerEmpty = $subChunk->isBlockLayerEmpty();
$isLiquidLayerEmpty = $subChunk->isLiquidLayerEmpty();
$layerCount = 0;
if(!$isBlockLayerEmpty) $layerCount++;
if(!$isLiquidLayerEmpty) $layerCount++;
$subStream->putByte($layerCount);
if(!$isBlockLayerEmpty){
$this->serializeBlockPalette($subStream, $blockLayer);
} }
if(!$isLiquidLayerEmpty){ if(!$subChunk->isLiquidLayerEmpty()){
$this->serializeBlockPalette($subStream, $liquidLayer); $layers[] = $subChunk->getLiquidLayer();
}
$subStream->putByte(count($layers));
foreach($layers as $layer){
$this->serializeBlockPalette($subStream, $layer);
} }
$write->put($key, $subStream->getBuffer()); $write->put($key, $subStream->getBuffer());