level = $level; $this->random = $random; } abstract public function generateChunk(int $chunkX, int $chunkZ) : void; abstract public function populateChunk(int $chunkX, int $chunkZ) : void; abstract public function getSettings() : array; abstract public function getName() : string; abstract public function getSpawn() : Vector3; }