Make Generation max height depend on the actual maxheight, fix PHPstorm namespaces

This commit is contained in:
thebigsmileXD 2017-05-11 11:49:57 +02:00
parent 8311298fbc
commit 38f9faecd8
15 changed files with 55 additions and 20 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
.idea/*

View file

@ -15,6 +15,7 @@
namespace Ad5001\BetterGen\generator; namespace Ad5001\BetterGen\generator;
use pocketmine\level\ChunkManager; use pocketmine\level\ChunkManager;
use pocketmine\math\Vector3;
use pocketmine\utils\Random; use pocketmine\utils\Random;
use pocketmine\level\generator\biome\Biome; use pocketmine\level\generator\biome\Biome;
use pocketmine\level\generator\Generator; use pocketmine\level\generator\Generator;
@ -61,6 +62,7 @@ class BetterNormal extends Generator {
Block::STILL_WATER Block::STILL_WATER
]; ];
protected $selector; protected $selector;
/** @var Level */
protected $level; protected $level;
protected $random; protected $random;
protected $populators = [ ]; protected $populators = [ ];
@ -434,7 +436,7 @@ class BetterNormal extends Generator {
* @param $z int * @param $z int
*/ */
protected function getHighestWorkableBlock($x, $z) { protected function getHighestWorkableBlock($x, $z) {
for($y = 127; $y > 0; -- $y) { for($y = Level::Y_MAX; $y > 0; -- $y) {
$b = $this->level->getBlockIdAt($x, $y, $z); $b = $this->level->getBlockIdAt($x, $y, $z);
if ($b === Block::DIRT or $b === Block::GRASS or $b === Block::PODZOL) { if ($b === Block::DIRT or $b === Block::GRASS or $b === Block::PODZOL) {
break; break;

View file

@ -14,6 +14,7 @@
namespace Ad5001\BetterGen\populator; namespace Ad5001\BetterGen\populator;
use pocketmine\level\Level;
use pocketmine\utils\Random; use pocketmine\utils\Random;
use pocketmine\block\Block; use pocketmine\block\Block;
use pocketmine\level\ChunkManager; use pocketmine\level\ChunkManager;
@ -22,6 +23,7 @@ use Ad5001\BetterGen\populator\AmountPopulator;
use Ad5001\BetterGen\structure\Bush; use Ad5001\BetterGen\structure\Bush;
class BushPopulator extends AmountPopulator { class BushPopulator extends AmountPopulator {
/** @var ChunkManager */
protected $level; protected $level;
protected $type; protected $type;
@ -62,7 +64,7 @@ class BushPopulator extends AmountPopulator {
* @param $z int * @param $z int
*/ */
protected function getHighestWorkableBlock($x, $z) { protected function getHighestWorkableBlock($x, $z) {
for($y = 127; $y > 0; -- $y) { for($y = Level::Y_MAX; $y > 0; -- $y) {
$b = $this->level->getBlockIdAt($x, $y, $z); $b = $this->level->getBlockIdAt($x, $y, $z);
if ($b === Block::DIRT or $b === Block::GRASS or $b === Block::PODZOL) { if ($b === Block::DIRT or $b === Block::GRASS or $b === Block::PODZOL) {
break; break;

View file

@ -17,11 +17,13 @@ namespace Ad5001\BetterGen\populator;
use pocketmine\block\Block; use pocketmine\block\Block;
use pocketmine\level\ChunkManager; use pocketmine\level\ChunkManager;
use pocketmine\level\Level;
use pocketmine\utils\Random; use pocketmine\utils\Random;
use Ad5001\BetterGen\structure\Cactus; use Ad5001\BetterGen\structure\Cactus;
use Ad5001\BetterGen\populator\AmountPopulator; use Ad5001\BetterGen\populator\AmountPopulator;
class CactusPopulator extends AmountPopulator { class CactusPopulator extends AmountPopulator {
/** @var ChunkManager */
protected $level; protected $level;
/* /*
* Constructs the class * Constructs the class
@ -58,7 +60,7 @@ class CactusPopulator extends AmountPopulator {
* @param $z int * @param $z int
*/ */
protected function getHighestWorkableBlock($x, $z) { protected function getHighestWorkableBlock($x, $z) {
for($y = 127; $y >= 0; -- $y) { for($y = Level::Y_MAX; $y >= 0; -- $y) {
$b = $this->level->getBlockIdAt($x, $y, $z); $b = $this->level->getBlockIdAt($x, $y, $z);
if ($b !== Block::AIR and $b !== Block::LEAVES and $b !== Block::LEAVES2) { if ($b !== Block::AIR and $b !== Block::LEAVES and $b !== Block::LEAVES2) {
break; break;

View file

@ -14,6 +14,7 @@
namespace Ad5001\BetterGen\populator; namespace Ad5001\BetterGen\populator;
use pocketmine\level\Level;
use pocketmine\utils\Random; use pocketmine\utils\Random;
use pocketmine\block\Block; use pocketmine\block\Block;
use pocketmine\level\ChunkManager; use pocketmine\level\ChunkManager;
@ -22,6 +23,7 @@ use Ad5001\BetterGen\utils\BuildingUtils;
use Ad5001\BetterGen\populator\AmountPopulator; use Ad5001\BetterGen\populator\AmountPopulator;
class CavePopulator extends AmountPopulator { class CavePopulator extends AmountPopulator {
/** @var ChunkManager */
protected $level; protected $level;
const STOP = false; const STOP = false;
const CONTINUE = true; const CONTINUE = true;
@ -65,7 +67,7 @@ class CavePopulator extends AmountPopulator {
* @param $z int * @param $z int
*/ */
protected function getHighestWorkableBlock($x, $z) { protected function getHighestWorkableBlock($x, $z) {
for($y = 127; $y > 0; -- $y) { for($y = Level::Y_MAX; $y > 0; -- $y) {
$b = $this->level->getBlockIdAt($x, $y, $z); $b = $this->level->getBlockIdAt($x, $y, $z);
if ($b === Block::DIRT or $b === Block::GRASS or $b === Block::PODZOL or $b === Block::SAND or $b === Block::SNOW_BLOCK or $b === Block::SANDSTONE) { if ($b === Block::DIRT or $b === Block::GRASS or $b === Block::PODZOL or $b === Block::SAND or $b === Block::SNOW_BLOCK or $b === Block::SANDSTONE) {
break; break;

View file

@ -16,10 +16,12 @@ namespace Ad5001\BetterGen\populator;
use pocketmine\block\Block; use pocketmine\block\Block;
use pocketmine\level\ChunkManager; use pocketmine\level\ChunkManager;
use pocketmine\level\Level;
use pocketmine\utils\Random; use pocketmine\utils\Random;
use Ad5001\BetterGen\populator\AmountPopulator; use Ad5001\BetterGen\populator\AmountPopulator;
class DeadbushPopulator extends AmountPopulator { class DeadbushPopulator extends AmountPopulator {
/** @var ChunkManager */
protected $level; protected $level;
/* /*
@ -49,7 +51,7 @@ class DeadbushPopulator extends AmountPopulator {
* @param $z int * @param $z int
*/ */
protected function getHighestWorkableBlock($x, $z) { protected function getHighestWorkableBlock($x, $z) {
for($y = 127; $y >= 0; -- $y) { for($y = Level::Y_MAX; $y >= 0; -- $y) {
$b = $this->level->getBlockIdAt($x, $y, $z); $b = $this->level->getBlockIdAt($x, $y, $z);
if ($b !== Block::AIR and $b !== Block::LEAVES and $b !== Block::LEAVES2) { if ($b !== Block::AIR and $b !== Block::LEAVES and $b !== Block::LEAVES2) {
break; break;

View file

@ -16,12 +16,14 @@ namespace Ad5001\BetterGen\populator;
use pocketmine\block\Block; use pocketmine\block\Block;
use pocketmine\level\ChunkManager; use pocketmine\level\ChunkManager;
use pocketmine\level\Level;
use pocketmine\utils\Random; use pocketmine\utils\Random;
use Ad5001\BetterGen\structure\FallenTree; use Ad5001\BetterGen\structure\FallenTree;
use Ad5001\BetterGen\populator\AmountPopulator; use Ad5001\BetterGen\populator\AmountPopulator;
class FallenTreePopulator extends AmountPopulator { class FallenTreePopulator extends AmountPopulator {
/** @var ChunkManager */
protected $level; protected $level;
protected $type; protected $type;
/* /*
@ -51,7 +53,7 @@ class FallenTreePopulator extends AmountPopulator {
$z = $random->nextRange($chunkZ * 16, $chunkZ * 16 + 15); $z = $random->nextRange($chunkZ * 16, $chunkZ * 16 + 15);
$y = $this->getHighestWorkableBlock($x, $z); $y = $this->getHighestWorkableBlock($x, $z);
if ($y !== -1 and $fallenTree->canPlaceObject($level, $x, $y + 1, $z, $random )) { if ($y !== -1 and $fallenTree->canPlaceObject($level, $x, $y + 1, $z, $random )) {
$fallenTree->placeObject($level, $x, $y + 1, $z, $random); $fallenTree->placeObject($level, $x, $y + 1, $z);
} }
} }
} }
@ -62,7 +64,7 @@ class FallenTreePopulator extends AmountPopulator {
* @param $z int * @param $z int
*/ */
protected function getHighestWorkableBlock($x, $z) { protected function getHighestWorkableBlock($x, $z) {
for($y = 127; $y >= 0; -- $y) { for($y = Level::Y_MAX; $y >= 0; -- $y) {
$b = $this->level->getBlockIdAt($x, $y, $z); $b = $this->level->getBlockIdAt($x, $y, $z);
if ($b !== Block::AIR and $b !== Block::LEAVES and $b !== Block::LEAVES2) { if ($b !== Block::AIR and $b !== Block::LEAVES and $b !== Block::LEAVES2) {
break; break;

View file

@ -15,6 +15,8 @@
namespace Ad5001\BetterGen\populator; namespace Ad5001\BetterGen\populator;
use pocketmine\level\ChunkManager; use pocketmine\level\ChunkManager;
use pocketmine\level\format\Chunk;
use pocketmine\level\Level;
use pocketmine\utils\Random; use pocketmine\utils\Random;
use Ad5001\BetterGen\generator\BetterNormal; use Ad5001\BetterGen\generator\BetterNormal;
use pocketmine\block\Block; use pocketmine\block\Block;
@ -39,6 +41,9 @@ class FloatingIslandPopulator extends AmountPopulator {
* @param $chunkZ int * @param $chunkZ int
* @param $random pocketmine\utils\Random * @param $random pocketmine\utils\Random
*/ */
/** @var ChunkManager */
private $level;
public function populate(ChunkManager $level, $chunkX, $chunkZ, Random $random) { public function populate(ChunkManager $level, $chunkX, $chunkZ, Random $random) {
$this->level = $level; $this->level = $level;
if($this->getAmount($random) > 130) { if($this->getAmount($random) > 130) {
@ -49,7 +54,7 @@ class FloatingIslandPopulator extends AmountPopulator {
$height = $this->buildIslandBottomShape($level, new Vector3($x, $y, $z), $radius, $random); $height = $this->buildIslandBottomShape($level, new Vector3($x, $y, $z), $radius, $random);
$this->populateOres($level, new Vector3($x, $y - 1, $z), $radius * 2, $height, $random); $this->populateOres($level, new Vector3($x, $y - 1, $z), $radius * 2, $height, $random);
$chunk = $level->getChunk($chunkX, $chunkZ); $chunk = $level->getChunk($chunkX, $chunkZ);
$biome = BetterNormal::getBiomeById($chunk->getBiomeId($x % 16, $z % 16)); $biome = BetterNormal::getBiomeById($chunk->getBiomeId($x % 16, $z % 16));//static call
$populators = $biome->getPopulators(); $populators = $biome->getPopulators();
foreach($populators as $populator) { foreach($populators as $populator) {
$populator->populate($level, $chunkX, $chunkZ, $random); $populator->populate($level, $chunkX, $chunkZ, $random);
@ -65,7 +70,7 @@ class FloatingIslandPopulator extends AmountPopulator {
* @param $z int * @param $z int
*/ */
protected function getHighestWorkableBlock($x, $z) { protected function getHighestWorkableBlock($x, $z) {
for($y = 127; $y > 0; -- $y) { for($y = Level::Y_MAX; $y > 0; -- $y) {
$b = $this->level->getBlockIdAt($x, $y, $z); $b = $this->level->getBlockIdAt($x, $y, $z);
if ($b === Block::DIRT or $b === Block::GRASS or $b === Block::PODZOL or $b === Block::SAND) { if ($b === Block::DIRT or $b === Block::GRASS or $b === Block::PODZOL or $b === Block::SAND) {
break; break;
@ -90,7 +95,7 @@ class FloatingIslandPopulator extends AmountPopulator {
public function buildIslandBottomShape(ChunkManager $level, Vector3 $pos, int $radius, Random $random) { public function buildIslandBottomShape(ChunkManager $level, Vector3 $pos, int $radius, Random $random) {
$pos = $pos->round(); $pos = $pos->round();
$xx = $pos->x; $xx = $pos->x;
$zz = $z; $zz = $z; //undefined
$currentLen = 1; $currentLen = 1;
$isEdge = false; $isEdge = false;
$hBound = 0; $hBound = 0;
@ -105,7 +110,7 @@ class FloatingIslandPopulator extends AmountPopulator {
} }
if(abs(abs($x - $pos->x) ** 2) + abs(abs($z - $pos->z) ** 2) <= ($radius ** 2) * 0.67 && $y < 128) { if(abs(abs($x - $pos->x) ** 2) + abs(abs($z - $pos->z) ** 2) <= ($radius ** 2) * 0.67 && $y < 128) {
if($chunk = $level->getChunk($x >> 4, $z >> 4)) { if($chunk = $level->getChunk($x >> 4, $z >> 4)) {
$biome = BetterNormal::getBiomeById($chunk->getBiomeId($x % 16, $z % 16)); $biome = BetterNormal::getBiomeById($chunk->getBiomeId($x % 16, $z % 16));//static call
$block = $biome->getGroundCover()[$pos->y - $y - 1] ?? Block::get(Block::STONE); $block = $biome->getGroundCover()[$pos->y - $y - 1] ?? Block::get(Block::STONE);
$block = $block->getId(); $block = $block->getId();
} elseif($random->nextBoundedInt(5) == 0 && $isEdge) { } elseif($random->nextBoundedInt(5) == 0 && $isEdge) {
@ -160,6 +165,6 @@ class FloatingIslandPopulator extends AmountPopulator {
new OreType(new GoldOre (), 2, 8, $pos->y - $height, $pos->y - round($height / 2)), new OreType(new GoldOre (), 2, 8, $pos->y - $height, $pos->y - round($height / 2)),
new OreType(new DiamondOre (), 1, 7, $pos->y - $height, $pos->y - round($height / 4)) new OreType(new DiamondOre (), 1, 7, $pos->y - $height, $pos->y - round($height / 4))
]); ]);
$ores->populate($level, $x >> 4, $z >> 4, $random); $ores->populate($level, $x >> 4, $z >> 4, $random);//x z undefined
} }
} }

View file

@ -14,6 +14,7 @@
namespace Ad5001\BetterGen\populator; namespace Ad5001\BetterGen\populator;
use pocketmine\level\Level;
use pocketmine\utils\Random; use pocketmine\utils\Random;
use pocketmine\block\Block; use pocketmine\block\Block;
use pocketmine\level\ChunkManager; use pocketmine\level\ChunkManager;
@ -21,6 +22,7 @@ use Ad5001\BetterGen\populator\AmountPopulator;
use Ad5001\BetterGen\structure\Igloo; use Ad5001\BetterGen\structure\Igloo;
class IglooPopulator extends AmountPopulator { class IglooPopulator extends AmountPopulator {
/** @var ChunkManager */
protected $level; protected $level;
/* /*
@ -48,7 +50,7 @@ class IglooPopulator extends AmountPopulator {
* @param $z int * @param $z int
*/ */
protected function getHighestWorkableBlock($x, $z) { protected function getHighestWorkableBlock($x, $z) {
for($y = 127; $y > 0; -- $y) { for($y = Level::Y_MAX; $y > 0; -- $y) {
$b = $this->level->getBlockIdAt($x, $y, $z); $b = $this->level->getBlockIdAt($x, $y, $z);
if ($b === Block::DIRT or $b === Block::GRASS or $b === Block::PODZOL) { if ($b === Block::DIRT or $b === Block::GRASS or $b === Block::PODZOL) {
break; break;

View file

@ -14,6 +14,7 @@
namespace Ad5001\BetterGen\populator; namespace Ad5001\BetterGen\populator;
use pocketmine\level\Level;
use pocketmine\utils\Random; use pocketmine\utils\Random;
use pocketmine\block\Block; use pocketmine\block\Block;
use pocketmine\level\ChunkManager; use pocketmine\level\ChunkManager;
@ -22,6 +23,7 @@ use Ad5001\BetterGen\utils\BuildingUtils;
use Ad5001\BetterGen\populator\AmountPopulator; use Ad5001\BetterGen\populator\AmountPopulator;
class LakePopulator extends AmountPopulator { class LakePopulator extends AmountPopulator {
/** @var ChunkManager */
protected $level; protected $level;
/* /*
@ -57,7 +59,7 @@ class LakePopulator extends AmountPopulator {
* @param $z int * @param $z int
*/ */
protected function getHighestWorkableBlock($x, $z) { protected function getHighestWorkableBlock($x, $z) {
for($y = 127; $y > 0; -- $y) { for($y = Level::Y_MAX; $y > 0; -- $y) {
$b = $this->level->getBlockIdAt($x, $y, $z); $b = $this->level->getBlockIdAt($x, $y, $z);
if ($b === Block::DIRT or $b === Block::GRASS or $b === Block::PODZOL) { if ($b === Block::DIRT or $b === Block::GRASS or $b === Block::PODZOL) {
break; break;

View file

@ -14,6 +14,7 @@
namespace Ad5001\BetterGen\populator; namespace Ad5001\BetterGen\populator;
use pocketmine\level\Level;
use pocketmine\utils\Random; use pocketmine\utils\Random;
use pocketmine\block\Block; use pocketmine\block\Block;
use pocketmine\level\ChunkManager; use pocketmine\level\ChunkManager;
@ -21,6 +22,7 @@ use Ad5001\BetterGen\populator\AmountPopulator;
use Ad5001\BetterGen\utils\BuildingUtils; use Ad5001\BetterGen\utils\BuildingUtils;
class RavinePopulator extends AmountPopulator { class RavinePopulator extends AmountPopulator {
/** @var ChunkManager */
protected $level; protected $level;
const NOISE = 250; const NOISE = 250;
@ -74,7 +76,7 @@ class RavinePopulator extends AmountPopulator {
* @param $z int * @param $z int
*/ */
protected function getHighestWorkableBlock($x, $z) { protected function getHighestWorkableBlock($x, $z) {
for($y = 127; $y > 0; -- $y) { for($y = Level::Y_MAX; $y > 0; -- $y) {
$b = $this->level->getBlockIdAt($x, $y, $z); $b = $this->level->getBlockIdAt($x, $y, $z);
if ($b === Block::DIRT or $b === Block::GRASS or $b === Block::PODZOL or $b === Block::SAND or $b === Block::SNOW_BLOCK or $b === Block::SANDSTONE) { if ($b === Block::DIRT or $b === Block::GRASS or $b === Block::PODZOL or $b === Block::SAND or $b === Block::SNOW_BLOCK or $b === Block::SANDSTONE) {
break; break;

View file

@ -16,11 +16,13 @@ namespace Ad5001\BetterGen\populator;
use pocketmine\block\Block; use pocketmine\block\Block;
use pocketmine\level\ChunkManager; use pocketmine\level\ChunkManager;
use pocketmine\level\Level;
use pocketmine\utils\Random; use pocketmine\utils\Random;
use Ad5001\BetterGen\structure\SugarCane; use Ad5001\BetterGen\structure\SugarCane;
use Ad5001\BetterGen\populator\AmountPopulator; use Ad5001\BetterGen\populator\AmountPopulator;
class SugarCanePopulator extends AmountPopulator { class SugarCanePopulator extends AmountPopulator {
/** @var ChunkManager */
protected $level; protected $level;
/* /*
* Constructs the class * Constructs the class
@ -57,7 +59,7 @@ class SugarCanePopulator extends AmountPopulator {
* @param $z int * @param $z int
*/ */
protected function getHighestWorkableBlock($x, $z) { protected function getHighestWorkableBlock($x, $z) {
for($y = 127; $y >= 0; -- $y) { for($y = Level::Y_MAX; $y >= 0; -- $y) {
$b = $this->level->getBlockIdAt($x, $y, $z); $b = $this->level->getBlockIdAt($x, $y, $z);
if ($b !== Block::AIR and $b !== Block::LEAVES and $b !== Block::LEAVES2) { if ($b !== Block::AIR and $b !== Block::LEAVES and $b !== Block::LEAVES2) {
break; break;

View file

@ -14,6 +14,7 @@
namespace Ad5001\BetterGen\populator; namespace Ad5001\BetterGen\populator;
use pocketmine\level\Level;
use pocketmine\utils\Random; use pocketmine\utils\Random;
use pocketmine\block\Block; use pocketmine\block\Block;
use pocketmine\level\ChunkManager; use pocketmine\level\ChunkManager;
@ -21,6 +22,7 @@ use Ad5001\BetterGen\structure\Temple;
use Ad5001\BetterGen\populator\AmountPopulator; use Ad5001\BetterGen\populator\AmountPopulator;
class TemplePopulator extends AmountPopulator { class TemplePopulator extends AmountPopulator {
/** @var Level */
protected $level; protected $level;
/* /*
@ -48,7 +50,7 @@ class TemplePopulator extends AmountPopulator {
* @param $z int * @param $z int
*/ */
protected function getHighestWorkableBlock($x, $z) { protected function getHighestWorkableBlock($x, $z) {
for($y = 127; $y > 0; -- $y) { for($y = Level::Y_MAX; $y > 0; -- $y) {
$b = $this->level->getBlockIdAt($x, $y, $z); $b = $this->level->getBlockIdAt($x, $y, $z);
if ($b === Block::SAND) { if ($b === Block::SAND) {
break; break;

View file

@ -14,6 +14,8 @@
namespace Ad5001\BetterGen\populator; namespace Ad5001\BetterGen\populator;
use pocketmine\level\generator\object\Tree;
use pocketmine\level\Level;
use pocketmine\utils\Random; use pocketmine\utils\Random;
use pocketmine\block\Block; use pocketmine\block\Block;
use pocketmine\level\ChunkManager; use pocketmine\level\ChunkManager;
@ -23,11 +25,13 @@ use Ad5001\BetterGen\Main;
class TreePopulator extends AmountPopulator { class TreePopulator extends AmountPopulator {
/** @var Tree[] */
static $types = [ static $types = [
"pocketmine\\level\\generator\\object\\OakTree", "pocketmine\\level\\generator\\object\\OakTree",
"pocketmine\\level\\generator\\object\\BirchTree", "pocketmine\\level\\generator\\object\\BirchTree",
"Ad5001\\BetterGen\\structure\\SakuraTree" "Ad5001\\BetterGen\\structure\\SakuraTree"
]; ];
/** @var ChunkManager */
protected $level; protected $level;
protected $type; protected $type;
@ -63,7 +67,8 @@ class TreePopulator extends AmountPopulator {
continue; continue;
} }
$treeC = self::$types [$this->type]; $treeC = self::$types [$this->type];
$tree = new $treeC(); /** @var Tree $tree */
$tree = new $treeC();
$tree->placeObject($level, $x, $y, $z, $random); $tree->placeObject($level, $x, $y, $z, $random);
} }
} }
@ -74,7 +79,7 @@ class TreePopulator extends AmountPopulator {
* @param $z int * @param $z int
*/ */
protected function getHighestWorkableBlock($x, $z) { protected function getHighestWorkableBlock($x, $z) {
for($y = 127; $y > 0; -- $y) { for($y = Level::Y_MAX; $y > 0; -- $y) {
$b = $this->level->getBlockIdAt($x, $y, $z); $b = $this->level->getBlockIdAt($x, $y, $z);
if ($b === Block::DIRT or $b === Block::GRASS or $b === Block::PODZOL) { if ($b === Block::DIRT or $b === Block::GRASS or $b === Block::PODZOL) {
break; break;

View file

@ -14,6 +14,7 @@
namespace Ad5001\BetterGen\populator; namespace Ad5001\BetterGen\populator;
use pocketmine\level\Level;
use pocketmine\utils\Random; use pocketmine\utils\Random;
use pocketmine\block\Block; use pocketmine\block\Block;
use pocketmine\level\ChunkManager; use pocketmine\level\ChunkManager;
@ -21,6 +22,7 @@ use Ad5001\BetterGen\structure\Well;
use Ad5001\BetterGen\populator\AmountPopulator; use Ad5001\BetterGen\populator\AmountPopulator;
class WellPopulator extends AmountPopulator { class WellPopulator extends AmountPopulator {
/** @var ChunkManager */
protected $level; protected $level;
/* /*
@ -48,7 +50,7 @@ class WellPopulator extends AmountPopulator {
* @param $z int * @param $z int
*/ */
protected function getHighestWorkableBlock($x, $z) { protected function getHighestWorkableBlock($x, $z) {
for($y = 127; $y > 0; -- $y) { for($y = Level::Y_MAX; $y > 0; -- $y) {
$b = $this->level->getBlockIdAt($x, $y, $z); $b = $this->level->getBlockIdAt($x, $y, $z);
if ($b === Block::SAND) { if ($b === Block::SAND) {
break; break;