예제 #1
0
 /**
  * @param      $chunkX
  * @param      $chunkZ
  *
  * @return Chunk
  */
 private function readChunk($chunkX, $chunkZ)
 {
     $index = LevelDB::chunkIndex($chunkX, $chunkZ);
     if (!$this->chunkExists($chunkX, $chunkZ) or ($data = $this->db->get($index . self::ENTRY_TERRAIN)) === false) {
         return null;
     }
     $flags = $this->db->get($index . self::ENTRY_FLAGS);
     if ($flags === false) {
         $flags = "";
     }
     return Chunk::fromBinary($index . $data . $flags, $this);
 }
예제 #2
0
 /**
  * @param      $chunkX
  * @param      $chunkZ
  * @param bool $create
  *
  * @return Chunk
  */
 private function readChunk($chunkX, $chunkZ, $create = false)
 {
     $index = LevelDB::chunkIndex($chunkX, $chunkZ);
     if (!$this->chunkExists($chunkX, $chunkZ) or ($data = $this->db->get($index . "0")) === false) {
         return $create ? $this->generateChunk($chunkX, $chunkZ) : null;
     }
     $flags = $this->db->get($index . "f");
     if ($flags === false) {
         $flags = "";
     }
     return Chunk::fromBinary($index . $data . $flags, $this);
 }