SimpleChunkManager: added $create parameter

This commit is contained in:
Dylan K. Taylor 2019-06-27 16:13:14 +01:00
parent a279648c68
commit 6f087190f4
2 changed files with 10 additions and 7 deletions

View File

@ -94,12 +94,13 @@ interface ChunkManager{
public function setBlockSkyLightAt(int $x, int $y, int $z, int $level) : void; public function setBlockSkyLightAt(int $x, int $y, int $z, int $level) : void;
/** /**
* @param int $chunkX * @param int $chunkX
* @param int $chunkZ * @param int $chunkZ
* @param bool $create
* *
* @return Chunk|null * @return Chunk|null
*/ */
public function getChunk(int $chunkX, int $chunkZ) : ?Chunk; public function getChunk(int $chunkX, int $chunkZ, bool $create = false) : ?Chunk;
/** /**
* @param int $chunkX * @param int $chunkX

View File

@ -90,13 +90,15 @@ class SimpleChunkManager implements ChunkManager{
} }
/** /**
* @param int $chunkX * @param int $chunkX
* @param int $chunkZ * @param int $chunkZ
* @param bool $create
* *
* @return Chunk|null * @return Chunk|null
*/ */
public function getChunk(int $chunkX, int $chunkZ) : ?Chunk{ public function getChunk(int $chunkX, int $chunkZ, bool $create = false) : ?Chunk{
return $this->chunks[World::chunkHash($chunkX, $chunkZ)] ?? null; $hash = World::chunkHash($chunkX, $chunkZ);
return $this->chunks[$hash] ?? ($create ? $this->chunks[$hash] = new Chunk($chunkX, $chunkZ) : null);
} }
/** /**