mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-04 00:59:51 +00:00
Further cleanup to Simplex/Noise hierarchy
This commit is contained in:
parent
e1795dfd49
commit
1e8b153662
@ -28,13 +28,7 @@ namespace pocketmine\level\generator\noise;
|
|||||||
|
|
||||||
|
|
||||||
abstract class Noise{
|
abstract class Noise{
|
||||||
protected $perm = [];
|
|
||||||
protected $offsetX = 0;
|
|
||||||
protected $offsetY = 0;
|
|
||||||
protected $offsetZ = 0;
|
|
||||||
protected $octaves = 8;
|
|
||||||
protected $persistence;
|
|
||||||
protected $expansion;
|
|
||||||
|
|
||||||
public static function linearLerp($x, $x1, $x2, $q0, $q1){
|
public static function linearLerp($x, $x1, $x2, $q0, $q1){
|
||||||
return (($x2 - $x) / ($x2 - $x1)) * $q0 + (($x - $x1) / ($x2 - $x1)) * $q1;
|
return (($x2 - $x) / ($x2 - $x1)) * $q0 + (($x - $x1) / ($x2 - $x1)) * $q1;
|
||||||
@ -72,6 +66,19 @@ abstract class Noise{
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @var float */
|
||||||
|
protected $persistence;
|
||||||
|
/** @var float */
|
||||||
|
protected $expansion;
|
||||||
|
/** @var int */
|
||||||
|
protected $octaves;
|
||||||
|
|
||||||
|
public function __construct(int $octaves, float $persistence, float $expansion){
|
||||||
|
$this->octaves = $octaves;
|
||||||
|
$this->persistence = $persistence;
|
||||||
|
$this->expansion = $expansion;
|
||||||
|
}
|
||||||
|
|
||||||
abstract public function getNoise2D($x, $z);
|
abstract public function getNoise2D($x, $z);
|
||||||
|
|
||||||
abstract public function getNoise3D($x, $y, $z);
|
abstract public function getNoise3D($x, $y, $z);
|
||||||
|
@ -45,10 +45,18 @@ class Simplex extends Noise{
|
|||||||
protected const F3 = 1.0 / 3.0;
|
protected const F3 = 1.0 / 3.0;
|
||||||
protected const G3 = 1.0 / 6.0;
|
protected const G3 = 1.0 / 6.0;
|
||||||
|
|
||||||
public function __construct(Random $random, $octaves, $persistence, $expansion = 1){
|
/** @var float */
|
||||||
$this->octaves = $octaves;
|
protected $offsetX;
|
||||||
$this->persistence = $persistence;
|
/** @var float */
|
||||||
$this->expansion = $expansion;
|
protected $offsetZ;
|
||||||
|
/** @var float */
|
||||||
|
protected $offsetY;
|
||||||
|
/** @var int[] */
|
||||||
|
protected $perm = [];
|
||||||
|
|
||||||
|
public function __construct(Random $random, int $octaves, float $persistence, float $expansion){
|
||||||
|
parent::__construct($octaves, $persistence, $expansion);
|
||||||
|
|
||||||
$this->offsetX = $random->nextFloat() * 256;
|
$this->offsetX = $random->nextFloat() * 256;
|
||||||
$this->offsetY = $random->nextFloat() * 256;
|
$this->offsetY = $random->nextFloat() * 256;
|
||||||
$this->offsetZ = $random->nextFloat() * 256;
|
$this->offsetZ = $random->nextFloat() * 256;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user