mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-08-11 22:08:42 +00:00
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:
parent
48cc87d066
commit
7c651928ea
@ -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());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user