40    public static function create(
BlockPosition $baseBlockPosition, array $layer0Updates, array $layer1Updates) : self{
 
   42        $result->baseBlockPosition = $baseBlockPosition;
 
   43        $result->layer0Updates = $layer0Updates;
 
   44        $result->layer1Updates = $layer1Updates;
 
 
   57        $this->baseBlockPosition = 
CommonTypes::getBlockPosition($in);
 
   58        $this->layer0Updates = [];
 
   59        for($i = 0, $count = VarInt::readUnsignedInt($in); $i < $count; ++$i){
 
   60            $this->layer0Updates[] = UpdateSubChunkBlocksPacketEntry::read($in);
 
   62        $this->layer1Updates = [];
 
   63        for($i = 0, $count = VarInt::readUnsignedInt($in); $i < $count; ++$i){
 
   64            $this->layer1Updates[] = UpdateSubChunkBlocksPacketEntry::read($in);
 
 
   69        CommonTypes::putBlockPosition($out, $this->baseBlockPosition);
 
   70        VarInt::writeUnsignedInt($out, count($this->layer0Updates));
 
   71        foreach($this->layer0Updates as $update){
 
   74        VarInt::writeUnsignedInt($out, count($this->layer1Updates));
 
   75        foreach($this->layer1Updates as $update){