Chunk: make all parameters of __construct() mandatory and non-nullable

having the constructor fill in defaults for these invariably causes bugs.
This commit is contained in:
Dylan K. Taylor
2021-10-25 20:22:50 +01:00
parent d53347454b
commit baba25953f
7 changed files with 16 additions and 6 deletions

View File

@ -69,7 +69,7 @@ class Flat extends Generator{
}
protected function generateBaseChunk() : void{
$this->chunk = new Chunk([], BiomeArray::fill($this->options->getBiomeId()));
$this->chunk = new Chunk([], BiomeArray::fill($this->options->getBiomeId()), false);
$structure = $this->options->getStructure();
$count = count($structure);

View File

@ -23,8 +23,10 @@ declare(strict_types=1);
namespace pocketmine\world\generator;
use pocketmine\data\bedrock\BiomeIds;
use pocketmine\scheduler\AsyncTask;
use pocketmine\utils\AssumptionFailedError;
use pocketmine\world\format\BiomeArray;
use pocketmine\world\format\Chunk;
use pocketmine\world\format\io\FastChunkSerializer;
use pocketmine\world\SimpleChunkManager;
@ -127,7 +129,7 @@ class PopulationTask extends AsyncTask{
}
private static function setOrGenerateChunk(SimpleChunkManager $manager, Generator $generator, int $chunkX, int $chunkZ, ?Chunk $chunk) : Chunk{
$manager->setChunk($chunkX, $chunkZ, $chunk ?? new Chunk());
$manager->setChunk($chunkX, $chunkZ, $chunk ?? new Chunk([], BiomeArray::fill(BiomeIds::OCEAN), false));
if($chunk === null){
$generator->generateChunk($manager, $chunkX, $chunkZ);
$chunk = $manager->getChunk($chunkX, $chunkZ);