forked from Ad5001/BetterGen
Big update !
- Updating headers, - Adding first setting, deleteBiomes, wiki comming soon
This commit is contained in:
parent
acd3273c72
commit
b73d3c981c
37 changed files with 534 additions and 275 deletions
20
plugin.yml
20
plugin.yml
|
@ -1,17 +1,31 @@
|
||||||
---
|
---
|
||||||
# Base generated with ImagicalPlugCreator by Ad5001 (C) 2017 for Ad5001
|
# ____ __ __ ____
|
||||||
# link: https://ad5001.eu
|
# /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
|
# \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
|
# \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
|
# \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
# \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
# \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
# Tommorow's pocketmine generator.
|
||||||
|
# @author Ad5001
|
||||||
|
# @link https://github.com/Ad5001/BetterGen
|
||||||
name: BetterGen
|
name: BetterGen
|
||||||
author: Ad5001
|
author: Ad5001
|
||||||
main: Ad5001\BetterGen\Main
|
main: Ad5001\BetterGen\Main
|
||||||
version: 1.0
|
version: 1.1
|
||||||
api: [3.0.1, 3.0.0-ALPHA3]
|
api: [3.0.1, 3.0.0-ALPHA3]
|
||||||
commands:
|
commands:
|
||||||
createworld:
|
createworld:
|
||||||
description: Generates a new world.
|
description: Generates a new world.
|
||||||
usage: "/createworld <name> [generator = betternormal] [seed = rand()] [options (json)]"
|
usage: "/createworld <name> [generator = betternormal] [seed = rand()] [options (json)]"
|
||||||
permission: bettergen.cmd.createworld
|
permission: bettergen.cmd.createworld
|
||||||
|
worldtp:
|
||||||
|
description: Teleports you to an another world
|
||||||
|
usage: "/worldtp <world name>"
|
||||||
|
permission: bettergen.cmd.worldtp
|
||||||
permissions:
|
permissions:
|
||||||
bettergen.cmd.createworld:
|
bettergen.cmd.createworld:
|
||||||
default: op
|
default: op
|
||||||
|
bettergen.cmd.worldtp:
|
||||||
|
default: op
|
||||||
...
|
...
|
|
@ -1,10 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* Main from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright(C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen;
|
namespace Ad5001\BetterGen;
|
||||||
|
@ -112,6 +117,7 @@ class Main extends PluginBase implements \pocketmine\event\Listener {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
$generatorName = strtolower($args [1]);
|
$generatorName = strtolower($args [1]);
|
||||||
|
if($args[2] == "rand") $args[2] = $this->generateRandomSeed();
|
||||||
if(preg_match("[^\d]", $args [2]) !== false) {
|
if(preg_match("[^\d]", $args [2]) !== false) {
|
||||||
$parts = str_split($args [2]);
|
$parts = str_split($args [2]);
|
||||||
foreach($parts as $key => $str) {
|
foreach($parts as $key => $str) {
|
||||||
|
@ -123,12 +129,17 @@ class Main extends PluginBase implements \pocketmine\event\Listener {
|
||||||
}
|
}
|
||||||
unset($args [0], $args [1], $args [2]);
|
unset($args [0], $args [1], $args [2]);
|
||||||
$options = json_decode($args [3], true);
|
$options = json_decode($args [3], true);
|
||||||
if(! is_array($json)) {
|
if(! is_array($options)) {
|
||||||
$sender->sendMessage(Main::PREFIX . "§4Invalid JSON for options.");
|
$sender->sendMessage(Main::PREFIX . "§4Invalid JSON for options.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
$options["preset"] = json_encode($options);
|
||||||
|
if((int) $seed == 0/*String*/){
|
||||||
|
$seed = $this->generateRandomSeed();
|
||||||
|
echo "Rechoosen seed";
|
||||||
|
}
|
||||||
$this->getServer()->broadcastMessage(Main::PREFIX . "§aGenerating level $name with generator $generatorName and seed $seed..");
|
$this->getServer()->broadcastMessage(Main::PREFIX . "§aGenerating level $name with generator $generatorName and seed $seed..");
|
||||||
$this->getServer()->generateLevel($name, $seed, $generator, $options);
|
$this->getServer()->generateLevel($name, $seed, $generator, $options);
|
||||||
$this->getServer()->loadLevel($name);
|
$this->getServer()->loadLevel($name);
|
||||||
|
@ -161,10 +172,6 @@ class Main extends PluginBase implements \pocketmine\event\Listener {
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function registerBiome(int $id, Biome $biome) {
|
public static function registerBiome(int $id, Biome $biome) {
|
||||||
$reflection = new \ReflectionClass('pocketmine\\level\\generator\\biome\\Biome');
|
|
||||||
$register = $reflection->getMethod('register');
|
|
||||||
$register->setAccessible(true);
|
|
||||||
$register->invoke(null, $id, $biome);
|
|
||||||
BetterNormal::registerBiome($biome);
|
BetterNormal::registerBiome($biome);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -173,7 +180,7 @@ class Main extends PluginBase implements \pocketmine\event\Listener {
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function generateRandomSeed(): int {
|
public function generateRandomSeed(): int {
|
||||||
return(int) round(time() * rand(0, time()) / memory_get_usage());
|
return (int) round(rand(0, round(time()) / memory_get_usage(true)) * (int) str_shuffle("127469453645108") / (int) str_shuffle("12746945364"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Listener
|
// Listener
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* BetterDesert from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
namespace Ad5001\BetterGen\biome;
|
namespace Ad5001\BetterGen\biome;
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,18 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* BetterForest from BetterGen
|
* ____ __ __ ____
|
||||||
* Copyright (C) Ad5001 2017
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* @author ad5001
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\biome;
|
namespace Ad5001\BetterGen\biome;
|
||||||
|
|
||||||
use pocketmine\level\generator\normal\biome\ForestBiome;
|
use pocketmine\level\generator\normal\biome\ForestBiome;
|
||||||
|
@ -49,7 +56,7 @@ class BetterForest extends ForestBiome implements Mountainable {
|
||||||
$this->rainfall = $infos [1];
|
$this->rainfall = $infos [1];
|
||||||
}
|
}
|
||||||
public function getName() {
|
public function getName() {
|
||||||
return self::$types [$this->type];
|
return str_ireplace(" ", "", self::$types[$this->type]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* BetterIcePlains from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\biome;
|
namespace Ad5001\BetterGen\biome;
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* BetterMesa from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\biome;
|
namespace Ad5001\BetterGen\biome;
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* BetterMesaPlains from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\biome;
|
namespace Ad5001\BetterGen\biome;
|
||||||
|
|
||||||
use pocketmine\level\generator\normal\biome\SandyBiome;
|
use pocketmine\level\generator\normal\biome\SandyBiome;
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* BetterRiver from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\biome;
|
namespace Ad5001\BetterGen\biome;
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* Mountainable from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\biome;
|
namespace Ad5001\BetterGen\biome;
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* BetterBiomeSelector from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
namespace Ad5001\BetterGen\generator;
|
namespace Ad5001\BetterGen\generator;
|
||||||
|
|
||||||
|
@ -59,7 +64,6 @@ class BetterBiomeSelector extends BiomeSelector {
|
||||||
$rainfall = ($this->getRainfall($x, $z ));
|
$rainfall = ($this->getRainfall($x, $z ));
|
||||||
|
|
||||||
$biomeId = BetterNormal::getBiome($temperature, $rainfall);
|
$biomeId = BetterNormal::getBiome($temperature, $rainfall);
|
||||||
// $biomeId = new \Ad5001\BetterGen\biome\BetterDesert();
|
|
||||||
$b = (($biomeId instanceof Biome) ? $biomeId : ($this->biomes [$biomeId] ?? $this->fallback));
|
$b = (($biomeId instanceof Biome) ? $biomeId : ($this->biomes [$biomeId] ?? $this->fallback));
|
||||||
return $b;
|
return $b;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* BetterNormal from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\generator;
|
namespace Ad5001\BetterGen\generator;
|
||||||
|
|
||||||
use pocketmine\level\ChunkManager;
|
use pocketmine\level\ChunkManager;
|
||||||
|
@ -64,6 +70,10 @@ class BetterNormal extends Generator {
|
||||||
public static $levels = [ ];
|
public static $levels = [ ];
|
||||||
protected static $GAUSSIAN_KERNEL = null; // From main class
|
protected static $GAUSSIAN_KERNEL = null; // From main class
|
||||||
protected static $SMOOTH_SIZE = 2;
|
protected static $SMOOTH_SIZE = 2;
|
||||||
|
protected static $options = [
|
||||||
|
"deleteBiomes" => [
|
||||||
|
]
|
||||||
|
];
|
||||||
protected $waterHeight = 63;
|
protected $waterHeight = 63;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -91,6 +101,13 @@ class BetterNormal extends Generator {
|
||||||
}
|
}
|
||||||
return $b;
|
return $b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inits the class for the var
|
||||||
|
* @param ChunkManager $level
|
||||||
|
* @param Random $random
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
public function init(ChunkManager $level, Random $random) {
|
public function init(ChunkManager $level, Random $random) {
|
||||||
$this->level = $level;
|
$this->level = $level;
|
||||||
$this->random = $random;
|
$this->random = $random;
|
||||||
|
@ -139,10 +156,16 @@ class BetterNormal extends Generator {
|
||||||
$cover = Main::isOtherNS() ? new \pocketmine\level\generator\normal\populator\GroundCover() : new \pocketmine\level\generator\populator\GroundCover();
|
$cover = Main::isOtherNS() ? new \pocketmine\level\generator\normal\populator\GroundCover() : new \pocketmine\level\generator\populator\GroundCover();
|
||||||
$this->generationPopulators [] = $cover;
|
$this->generationPopulators [] = $cover;
|
||||||
|
|
||||||
|
// https://twitter.com/Ad5001P4F/status/859430935468670976
|
||||||
|
// $lake = new LakePopulator ();
|
||||||
|
// $lake->setBaseAmount(0);
|
||||||
|
// $lake->setRandomAmount(1);
|
||||||
|
// $this->generationPopulators [] = $lake;
|
||||||
|
|
||||||
$cave = new CavePopulator ();
|
$cave = new CavePopulator ();
|
||||||
$cave->setBaseAmount(0);
|
$cave->setBaseAmount(0);
|
||||||
$cave->setRandomAmount(2);
|
$cave->setRandomAmount(2);
|
||||||
$this->populators [] = $cave;
|
$this->generationPopulators [] = $cave;
|
||||||
|
|
||||||
$ravine = new RavinePopulator ();
|
$ravine = new RavinePopulator ();
|
||||||
$ravine->setBaseAmount(0);
|
$ravine->setBaseAmount(0);
|
||||||
|
@ -154,12 +177,6 @@ class BetterNormal extends Generator {
|
||||||
$mineshaft->setRandomAmount(102);
|
$mineshaft->setRandomAmount(102);
|
||||||
$this->populators [] = $mineshaft;
|
$this->populators [] = $mineshaft;
|
||||||
|
|
||||||
// https://twitter.com/Ad5001P4F/status/859430935468670976
|
|
||||||
// $lake = new LakePopulator ();
|
|
||||||
// $lake->setBaseAmount(0);
|
|
||||||
// $lake->setRandomAmount(1);
|
|
||||||
// $this->generationPopulators [] = $lake;
|
|
||||||
|
|
||||||
|
|
||||||
$fisl = new FloatingIslandPopulator();
|
$fisl = new FloatingIslandPopulator();
|
||||||
$fisl->setBaseAmount(0);
|
$fisl->setBaseAmount(0);
|
||||||
|
@ -196,11 +213,12 @@ class BetterNormal extends Generator {
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public static function registerBiome(Biome $biome): bool {
|
public static function registerBiome(Biome $biome): bool {
|
||||||
foreach(self::$levels as $lvl )
|
if(\Ad5001\BetterGen\utils\CommonUtils::in_arrayi($biome->getName(), self::$options["deleteBiomes"])) {
|
||||||
if (isset($lvl->selector ))
|
echo "Removing " . $biome->getName() . "...\n";
|
||||||
$lvl->selector->addBiome($biome); // If no selector created, it would cause errors. These will be added when selectoes
|
return false;
|
||||||
if (! isset(self::$biomes [( string ) $biome->getRainfall ()] ))
|
}
|
||||||
self::$biomes [( string ) $biome->getRainfall ()] = [ ];
|
foreach(self::$levels as $lvl ) if(isset($lvl->selector)) $lvl->selector->addBiome($biome); // If no selector created, it would cause errors. These will be added when selectoes
|
||||||
|
if (! isset(self::$biomes[(string) $biome->getRainfall ()] )) self::$biomes [( string ) $biome->getRainfall ()] = [ ];
|
||||||
self::$biomes [( string ) $biome->getRainfall ()] [( string ) $biome->getTemperature ()] = $biome;
|
self::$biomes [( string ) $biome->getRainfall ()] [( string ) $biome->getTemperature ()] = $biome;
|
||||||
ksort(self::$biomes [( string ) $biome->getRainfall ()]);
|
ksort(self::$biomes [( string ) $biome->getRainfall ()]);
|
||||||
ksort(self::$biomes);
|
ksort(self::$biomes);
|
||||||
|
@ -256,7 +274,6 @@ class BetterNormal extends Generator {
|
||||||
* @param $chunkZ int
|
* @param $chunkZ int
|
||||||
*/
|
*/
|
||||||
public function generateChunk($chunkX, $chunkZ) {
|
public function generateChunk($chunkX, $chunkZ) {
|
||||||
$this->reRegisterBiomes ();
|
|
||||||
|
|
||||||
$this->random->setSeed(0xdeadbeef ^ ($chunkX << 8) ^ $chunkZ ^ $this->level->getSeed ());
|
$this->random->setSeed(0xdeadbeef ^ ($chunkX << 8) ^ $chunkZ ^ $this->level->getSeed ());
|
||||||
|
|
||||||
|
@ -343,7 +360,7 @@ class BetterNormal extends Generator {
|
||||||
}
|
}
|
||||||
|
|
||||||
$chunk = $this->level->getChunk($chunkX, $chunkZ);
|
$chunk = $this->level->getChunk($chunkX, $chunkZ);
|
||||||
$biome = Biome::getBiome($chunk->getBiomeId(7, 7 ));
|
$biome = self::getBiomeById($chunk->getBiomeId(7, 7 ));
|
||||||
$biome->populateChunk($this->level, $chunkX, $chunkZ, $this->random);
|
$biome->populateChunk($this->level, $chunkX, $chunkZ, $this->random);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -352,6 +369,18 @@ class BetterNormal extends Generator {
|
||||||
* @param $options array
|
* @param $options array
|
||||||
*/
|
*/
|
||||||
public function __construct(array $options = []) {
|
public function __construct(array $options = []) {
|
||||||
|
self::$options["preset"] = $options["preset"];
|
||||||
|
$options = (array) json_decode($options["preset"]);
|
||||||
|
if(isset($options["deleteBiomes"]) && is_string($options["deleteBiomes"])) {
|
||||||
|
$options["deleteBiomes"] = explode(",", $options["deleteBiomes"]);
|
||||||
|
if(count($options["deleteBiomes"]) !== 0) {
|
||||||
|
self::$options["deleteBiomes"] = $options["deleteBiomes"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isset($options["deleteBiomes"]) && count($options["deleteBiomes"]) !== 0) {
|
||||||
|
self::$options["deleteBiomes"] = $options["deleteBiomes"];
|
||||||
|
}
|
||||||
if (self::$GAUSSIAN_KERNEL === null) {
|
if (self::$GAUSSIAN_KERNEL === null) {
|
||||||
self::generateKernel ();
|
self::generateKernel ();
|
||||||
}
|
}
|
||||||
|
@ -387,7 +416,7 @@ class BetterNormal extends Generator {
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function getSettings(): array {
|
public function getSettings(): array {
|
||||||
return [ ];
|
return self::$options;
|
||||||
}
|
}
|
||||||
public function getSpawn() {
|
public function getSpawn() {
|
||||||
return new Vector3(127.5, 128, 127.5);
|
return new Vector3(127.5, 128, 127.5);
|
||||||
|
@ -417,18 +446,4 @@ class BetterNormal extends Generator {
|
||||||
|
|
||||||
return $y++;
|
return $y++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Re registers all biomes for async
|
|
||||||
*/
|
|
||||||
public function reRegisterBiomes() {
|
|
||||||
$reflection = new \ReflectionClass('pocketmine\\level\\generator\\biome\\Biome');
|
|
||||||
$register = $reflection->getMethod('register');
|
|
||||||
$register->setAccessible(true);
|
|
||||||
foreach(self::$biomes as $rainfall => $arr ) {
|
|
||||||
foreach($arr as $tmp => $biome ) {
|
|
||||||
$register->invoke(null, $biome->getId (), $biome);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -1,10 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* LootTable from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\loot;
|
namespace Ad5001\BetterGen\loot;
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* AmountPopulator from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\populator;
|
namespace Ad5001\BetterGen\populator;
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* BushPopulator from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\populator;
|
namespace Ad5001\BetterGen\populator;
|
||||||
|
|
||||||
use pocketmine\utils\Random;
|
use pocketmine\utils\Random;
|
||||||
|
|
|
@ -1,12 +1,18 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* CactusPopulator from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\populator;
|
namespace Ad5001\BetterGen\populator;
|
||||||
|
|
||||||
use pocketmine\block\Block;
|
use pocketmine\block\Block;
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* CavePopulator from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\populator;
|
namespace Ad5001\BetterGen\populator;
|
||||||
|
|
||||||
use pocketmine\utils\Random;
|
use pocketmine\utils\Random;
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* DeadbushPopulator from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\populator;
|
namespace Ad5001\BetterGen\populator;
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* FallenTreePopulator from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\populator;
|
namespace Ad5001\BetterGen\populator;
|
||||||
|
|
|
@ -1,4 +1,16 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
|
* ____ __ __ ____
|
||||||
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\populator;
|
namespace Ad5001\BetterGen\populator;
|
||||||
|
|
||||||
|
@ -17,13 +29,6 @@ use pocketmine\block\GoldOre;
|
||||||
use pocketmine\block\DiamondOre;
|
use pocketmine\block\DiamondOre;
|
||||||
use Ad5001\BetterGen\Main;
|
use Ad5001\BetterGen\Main;
|
||||||
|
|
||||||
/*
|
|
||||||
* FloatingIslandPopulator from BetterGen
|
|
||||||
* Copyright (C) Ad5001 2017
|
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
|
||||||
* @author ad5001
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
class FloatingIslandPopulator extends AmountPopulator {
|
class FloatingIslandPopulator extends AmountPopulator {
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* IglooPopulator from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\populator;
|
namespace Ad5001\BetterGen\populator;
|
||||||
|
|
||||||
use pocketmine\utils\Random;
|
use pocketmine\utils\Random;
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* LakePopulator from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\populator;
|
namespace Ad5001\BetterGen\populator;
|
||||||
|
|
||||||
use pocketmine\utils\Random;
|
use pocketmine\utils\Random;
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* MineshaftPopulator from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\populator;
|
namespace Ad5001\BetterGen\populator;
|
||||||
|
|
||||||
use pocketmine\level\ChunkManager;
|
use pocketmine\level\ChunkManager;
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* RavinePopulator from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\populator;
|
namespace Ad5001\BetterGen\populator;
|
||||||
|
|
||||||
use pocketmine\utils\Random;
|
use pocketmine\utils\Random;
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* SugarCanePopulator from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\populator;
|
namespace Ad5001\BetterGen\populator;
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* TemplePopulator from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\populator;
|
namespace Ad5001\BetterGen\populator;
|
||||||
|
|
||||||
use pocketmine\utils\Random;
|
use pocketmine\utils\Random;
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* TreePopulator from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\populator;
|
namespace Ad5001\BetterGen\populator;
|
||||||
|
@ -57,12 +62,11 @@ class TreePopulator extends AmountPopulator {
|
||||||
if ($y === -1) {
|
if ($y === -1) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$tree = new self::$types [$this->type] ();
|
$treeC = self::$types [$this->type];
|
||||||
if ($tree->canPlaceObject($level, $x, $y, $z, $random )) {
|
$tree = new $treeC();
|
||||||
$tree->placeObject($level, $x, $y, $z, $random);
|
$tree->placeObject($level, $x, $y, $z, $random);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Gets the top block (y) on an x and z axes
|
* Gets the top block (y) on an x and z axes
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* WellPopulator from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\populator;
|
namespace Ad5001\BetterGen\populator;
|
||||||
|
|
||||||
use pocketmine\utils\Random;
|
use pocketmine\utils\Random;
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* Bush from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\structure;
|
namespace Ad5001\BetterGen\structure;
|
||||||
|
|
|
@ -1,13 +1,17 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* Cactus from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\structure;
|
namespace Ad5001\BetterGen\structure;
|
||||||
|
|
||||||
use pocketmine\block\Block;
|
use pocketmine\block\Block;
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* FallenTree from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\structure;
|
namespace Ad5001\BetterGen\structure;
|
||||||
|
@ -35,6 +40,7 @@ class FallenTree extends Object {
|
||||||
];
|
];
|
||||||
protected $tree;
|
protected $tree;
|
||||||
protected $direction;
|
protected $direction;
|
||||||
|
protected $random;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Constructs the class
|
* Constructs the class
|
||||||
|
@ -60,6 +66,7 @@ class FallenTree extends Object {
|
||||||
$randomHeight = round($random->nextBoundedInt(6) - 3);
|
$randomHeight = round($random->nextBoundedInt(6) - 3);
|
||||||
$this->length = $this->tree->trunkHeight + $randomHeight;
|
$this->length = $this->tree->trunkHeight + $randomHeight;
|
||||||
$this->direction = $random->nextBoundedInt(4);
|
$this->direction = $random->nextBoundedInt(4);
|
||||||
|
$this->random = $random;
|
||||||
switch($this->direction) {
|
switch($this->direction) {
|
||||||
case 0:
|
case 0:
|
||||||
case 1:// Z+
|
case 1:// Z+
|
||||||
|
@ -70,7 +77,7 @@ class FallenTree extends Object {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
case 3:
|
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(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), \Ad5001\BetterGen\structure\FallenTree::$overridable)) return false;
|
if(!in_array($level->getBlockIdAt($v3->x, $v3->y, $v3->z), \Ad5001\BetterGen\structure\FallenTree::$overridable)) return false;
|
||||||
}, $level))) {
|
}, $level))) {
|
||||||
|
@ -96,13 +103,17 @@ class FallenTree extends Object {
|
||||||
$z += 2;
|
$z += 2;
|
||||||
case 1:// Z+
|
case 1:// Z+
|
||||||
BuildingUtils::fill($level, new Vector3($x, $y, $z), new Vector3($x, $y, $z + $this->length), Block::get($this->tree->trunkBlock, $this->tree->type + 4));
|
BuildingUtils::fill($level, new Vector3($x, $y, $z), new Vector3($x, $y, $z + $this->length), Block::get($this->tree->trunkBlock, $this->tree->type + 4));
|
||||||
|
BuildingUtils::fillRandom($level, new Vector3($x + 1, $y, $z), new Vector3($x, $y, $z + $this->length), Block::get(Block::VINE), $this->random);
|
||||||
|
BuildingUtils::fillRandom($level, new Vector3($x - 1, $y, $z), new Vector3($x, $y, $z + $this->length), Block::get(Block::VINE), $this->random);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
$level->setBlockIdAt($x, $y, $z, $this->tree->trunkBlock);
|
$level->setBlockIdAt($x, $y, $z, $this->tree->trunkBlock);
|
||||||
$level->setBlockDataAt($x, $y, $z, $this->tree->type);
|
$level->setBlockDataAt($x, $y, $z, $this->tree->type);
|
||||||
$x += 2;
|
$x += 2;
|
||||||
case 3:
|
case 3: // X+
|
||||||
BuildingUtils::fill($level, new Vector3($x, $y, $z), new Vector3($x, $y, $z + $this->length), Block::get($this->tree->trunkBlock, $this->tree->type + 4));
|
BuildingUtils::fill($level, new Vector3($x, $y, $z), new Vector3($x + $this->length, $y, $z), Block::get($this->tree->trunkBlock, $this->tree->type + 8));
|
||||||
|
BuildingUtils::fillRandom($level, new Vector3($x, $y, $z + 1), new Vector3($x + $this->length, $y, $z), Block::get(Block::VINE), $this->random);
|
||||||
|
BuildingUtils::fillRandom($level, new Vector3($x, $y, $z - 1), new Vector3($x + $this->length, $y, $z), Block::get(Block::VINE), $this->random);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// Second call to build the last wood block
|
// Second call to build the last wood block
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* Cactus from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\structure;
|
namespace Ad5001\BetterGen\structure;
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* SakuraTree from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\structure;
|
namespace Ad5001\BetterGen\structure;
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* SugarCane from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* Temple from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\structure;
|
namespace Ad5001\BetterGen\structure;
|
||||||
|
|
|
@ -1,11 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
|
* ____ __ __ ____
|
||||||
/*
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Well from BetterGen
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
* @author ad5001
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
/*
|
* ____ __ __ ____
|
||||||
* BuildingUtils from BetterGen
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
* Copyright (C) Ad5001 2017
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
* Licensed under the BoxOfDevs Public General LICENSE which can be found in the file LICENSE in the root directory
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
* @author ad5001
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ad5001\BetterGen\utils;
|
namespace Ad5001\BetterGen\utils;
|
||||||
|
@ -34,12 +39,29 @@ class BuildingUtils {
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function fill(ChunkManager $level, Vector3 $pos1, Vector3 $pos2, Block $block = null) {
|
public static function fill(ChunkManager $level, Vector3 $pos1, Vector3 $pos2, Block $block = null) {
|
||||||
if ($block == null)
|
if ($block == null) $block = Block::get(Block::AIR);
|
||||||
$block = Block::get(Block::AIR);
|
|
||||||
list($pos1, $pos2 ) = self::minmax($pos1, $pos2);
|
list($pos1, $pos2 ) = self::minmax($pos1, $pos2);
|
||||||
for($x = $pos1->x; $x >= $pos2->x; $x --)
|
for($x = $pos1->x; $x >= $pos2->x; $x --) for($y = $pos1->y; $y >= $pos2->y; $y --) for($z = $pos1->z; $z >= $pos2->z; $z --) {
|
||||||
for($y = $pos1->y; $y >= $pos2->y; $y --)
|
$level->setBlockIdAt($x, $y, $z, $block->getId ());
|
||||||
for($z = $pos1->z; $z >= $pos2->z; $z --) {
|
$level->setBlockDataAt($x, $y, $z, $block->getDamage ());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Fills an area randomly
|
||||||
|
* @param $level pocketmine\level\ChunkManager
|
||||||
|
* @param $pos1 pocketmine\math\Vector3
|
||||||
|
* @param $pos2 pocketmine\math\Vector3
|
||||||
|
* @param $block pocketmine\block\Block
|
||||||
|
* @param $random pocketmine\utils
|
||||||
|
* @param $randMax pocketmine\utils
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public static function fillRandom(ChunkManager $level, Vector3 $pos1, Vector3 $pos2, Block $block = null, Random $random = null, $randMax = 3) {
|
||||||
|
if ($block == null) $block = Block::get(Block::AIR);
|
||||||
|
list($pos1, $pos2 ) = self::minmax($pos1, $pos2);
|
||||||
|
for($x = $pos1->x; $x >= $pos2->x; $x --) for($y = $pos1->y; $y >= $pos2->y; $y --) for($z = $pos1->z; $z >= $pos2->z; $z --) if($random !== null ? $random->nextBoundedInt($randMax) == 0 : rand(0, $randMax) == 0) {
|
||||||
$level->setBlockIdAt($x, $y, $z, $block->getId ());
|
$level->setBlockIdAt($x, $y, $z, $block->getId ());
|
||||||
$level->setBlockDataAt($x, $y, $z, $block->getDamage ());
|
$level->setBlockDataAt($x, $y, $z, $block->getDamage ());
|
||||||
}
|
}
|
||||||
|
@ -56,9 +78,7 @@ class BuildingUtils {
|
||||||
public static function fillCallback(Vector3 $pos1, Vector3 $pos2, callable $call, ...$params) : array {
|
public static function fillCallback(Vector3 $pos1, Vector3 $pos2, callable $call, ...$params) : array {
|
||||||
list($pos1, $pos2 ) = self::minmax($pos1, $pos2);
|
list($pos1, $pos2 ) = self::minmax($pos1, $pos2);
|
||||||
$return = [];
|
$return = [];
|
||||||
for($x = $pos1->x; $x >= $pos2->x; $x --)
|
for($x = $pos1->x; $x >= $pos2->x; $x --) for($y = $pos1->y; $y >= $pos2->y; $y --) for($z = $pos1->z; $z >= $pos2->z; $z --) {
|
||||||
for($y = $pos1->y; $y >= $pos2->y; $y --)
|
|
||||||
for($z = $pos1->z; $z >= $pos2->z; $z --) {
|
|
||||||
$return[] = call_user_func($call, new Vector3($x, $y, $z ), ...$params);
|
$return[] = call_user_func($call, new Vector3($x, $y, $z ), ...$params);
|
||||||
}
|
}
|
||||||
return $return;
|
return $return;
|
||||||
|
|
29
src/Ad5001/BetterGen/utils/CommonUtils.php
Normal file
29
src/Ad5001/BetterGen/utils/CommonUtils.php
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* ____ __ __ ____
|
||||||
|
* /\ _`\ /\ \__ /\ \__ /\ _`\
|
||||||
|
* \ \ \L\ \ __ \ \ ,_\\ \ ,_\ __ _ __ \ \ \L\_\ __ ___
|
||||||
|
* \ \ _ <' /'__`\\ \ \/ \ \ \/ /'__`\/\`'__\\ \ \L_L /'__`\ /' _ `\
|
||||||
|
* \ \ \L\ \/\ __/ \ \ \_ \ \ \_ /\ __/\ \ \/ \ \ \/, \/\ __/ /\ \/\ \
|
||||||
|
* \ \____/\ \____\ \ \__\ \ \__\\ \____\\ \_\ \ \____/\ \____\\ \_\ \_\
|
||||||
|
* \/___/ \/____/ \/__/ \/__/ \/____/ \/_/ \/___/ \/____/ \/_/\/_/
|
||||||
|
* Tommorow's pocketmine generator.
|
||||||
|
* @author Ad5001
|
||||||
|
* @link https://github.com/Ad5001/BetterGen
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Ad5001\BetterGen\utils;
|
||||||
|
# Communs utils under no namespace made for a specific usage
|
||||||
|
|
||||||
|
class CommonUtils {
|
||||||
|
/**
|
||||||
|
* Searches case insensitivly array $haystack for $needle.
|
||||||
|
* src: http://php.net/manual/en/function.in-array.php#89256
|
||||||
|
* @param mixed $needle
|
||||||
|
* @param array $haystack
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
static function in_arrayi($needle, array $haystack) :bool {
|
||||||
|
return in_array(strtolower($needle), array_map('strtolower', $haystack));
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue