forked from Ad5001/BetterGen
Some changes
This commit is contained in:
parent
4b109d817f
commit
1720d2d82d
3 changed files with 34 additions and 9 deletions
|
@ -144,6 +144,22 @@ class Main extends PluginBase implements \pocketmine\event\Listener {
|
|||
$this->getServer()->loadLevel($name);
|
||||
return true;
|
||||
break;
|
||||
case "worldtp":
|
||||
if(isset($args[0])) {
|
||||
if(is_null($this->getServer()->getLevelByName($args[0]))) {
|
||||
$this->getServer()->loadLevel($args[0]);
|
||||
if(is_null($this->getServer()->getLevelByName($args[0]))) {
|
||||
$sender->sendMessage("Could not find level {$args[0]}.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
$sender->teleport(\pocketmine\level\Position::fromObject($player, $this->getServer()->getLevelByName($args[0])));
|
||||
$sender->sendMessage("§aTeleporting to {$args[0]}...");
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -97,7 +97,7 @@ class BetterNormal extends Generator {
|
|||
$b = $this->selector->pickBiome($x + $xNoise - 1, $z + $zNoise - 1);
|
||||
if ($b instanceof Mountainable && $this->random->nextBoundedInt(1000 ) < 3) {
|
||||
$b = clone $b;
|
||||
$b->setElevation($b->getMinElevation () + (50 * $b->getMinElevation () / 100), $b->getMaxElevation () + (50 * $b->getMinElevation () / 100));
|
||||
// $b->setElevation($b->getMinElevation () + (50 * $b->getMinElevation () / 100), $b->getMaxElevation () + (50 * $b->getMinElevation () / 100));
|
||||
}
|
||||
return $b;
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ use Ad5001\BetterGen\utils\BuildingUtils;
|
|||
|
||||
|
||||
class FallenTree extends Object {
|
||||
public $overridable = [
|
||||
public static $overridable = [
|
||||
Block::AIR => true,
|
||||
6 => true,
|
||||
17 => true,
|
||||
|
@ -58,6 +58,7 @@ class FallenTree extends Object {
|
|||
* @param $random pocketmine\utils\Random
|
||||
*/
|
||||
public function canPlaceObject(ChunkManager $level, $x, $y, $z, Random $random) {
|
||||
echo "Checking at $x $y $z FallenTree\n";
|
||||
$randomHeight = round($random->nextBoundedInt(6) - 3);
|
||||
$this->length = $this->tree->trunkHeight + $randomHeight;
|
||||
$this->direction = $random->nextBoundedInt(4);
|
||||
|
@ -65,17 +66,25 @@ class FallenTree extends Object {
|
|||
switch($this->direction) {
|
||||
case 0:
|
||||
case 1:// Z+
|
||||
if(in_array(false, BuildingUtils::fillCallback(new Vector3($x, $y, $z), new Vector3($x, $y, $z + $this->length), function($v3, $level) {
|
||||
if(!in_array($level->getBlockIdAt($v3->x, $v3->y, $v3->z), $this->overridable)) return false;
|
||||
}, $level))) {
|
||||
$return = BuildingUtils::fillCallback(new Vector3($x, $y, $z), new Vector3($x, $y, $z + $this->length), function($v3, $level) {
|
||||
if(!isset(\Ad5001\BetterGen\structure\FallenTree::$overridable[$level->getBlockIdAt($v3->x, $v3->y, $v3->z)])) {
|
||||
echo $level->getBlockIdAt($v3->x, $v3->y, $v3->z) . " is not overridable";
|
||||
return false;
|
||||
}
|
||||
}, $level);
|
||||
if(in_array(false, $return, true)) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
case 3: // X+
|
||||
if(in_array(false, BuildingUtils::fillCallback(new Vector3($x, $y, $z), new Vector3($x + $this->length, $y, $z), function($v3, $level) {
|
||||
if(!in_array($level->getBlockIdAt($v3->x, $v3->y, $v3->z), $this->overridable)) return false;
|
||||
}, $level))) {
|
||||
$return = arra_BuildingUtils::fillCallback(new Vector3($x, $y, $z), new Vector3($x + $this->length, $y, $z), function($v3, $level) {
|
||||
if(!isset(\Ad5001\BetterGen\structure\FallenTree::$overridable[$level->getBlockIdAt($v3->x, $v3->y, $v3->z)])) {
|
||||
echo $level->getBlockIdAt($v3->x, $v3->y, $v3->z) . " is not overridable";
|
||||
return false;
|
||||
}
|
||||
}, $level);
|
||||
if(in_array(false, $return, true)) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
@ -131,7 +140,7 @@ class FallenTree extends Object {
|
|||
* @param $level pocketmine\level\ChunkManager
|
||||
*/
|
||||
public function placeBlock($x, $y, $z, ChunkManager $level) {
|
||||
if (isset($this->overridable [$level->getBlockIdAt($x, $y, $z )] ) && ! isset($this->overridable [$level->getBlockIdAt($x, $y - 1, $z )] )) {
|
||||
if (isset(self::$overridable [$level->getBlockIdAt($x, $y, $z )] ) && ! isset(self::$overridable [$level->getBlockIdAt($x, $y - 1, $z )] )) {
|
||||
$level->setBlockIdAt($x, $y, $z, $this->trunk [0]);
|
||||
$level->setBlockDataAt($x, $y, $z, $this->trunk [1]);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue