public function populate(ChunkManager $level, $chunkX, $chunkZ, Random $random)
{
$this->level = $level;
$amount = $random->nextRange(0, $this->randomAmount + 1) + $this->baseAmount;
for ($i = 0; $i < $amount; ++$i) {
$x = $random->nextRange($chunkX * 16, $chunkX * 16 + 15);
$z = $random->nextRange($chunkZ * 16, $chunkZ * 16 + 15);
$y = $this->getHighestWorkableBlock($x, $z);
if ($y !== -1 and $this->canMossStoneStay($x, $y, $z)) {
$this->level->setBlockIdAt($x, $y, $z, Block::MOSS_STONE);
$this->level->setBlockDataAt($x, $y, $z, 1);
}
}
}