mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-16 10:49:10 +00:00
BlockFactory: remove $solid
this is premature optimization and will run into problems once we enter the flattening.
This commit is contained in:
parent
19e68f98a7
commit
9b4d82630b
@ -33,8 +33,6 @@ class BlockFactory{
|
||||
/** @var \SplFixedArray<Block> */
|
||||
private static $fullList = null;
|
||||
|
||||
/** @var \SplFixedArray<bool> */
|
||||
public static $solid = null;
|
||||
/** @var \SplFixedArray<int> */
|
||||
public static $lightFilter = null;
|
||||
/** @var \SplFixedArray<bool> */
|
||||
@ -59,7 +57,6 @@ class BlockFactory{
|
||||
self::$fullList = new \SplFixedArray(4096);
|
||||
|
||||
self::$lightFilter = \SplFixedArray::fromArray(array_fill(0, 256, 1));
|
||||
self::$solid = \SplFixedArray::fromArray(array_fill(0, 256, false));
|
||||
self::$diffusesSkyLight = \SplFixedArray::fromArray(array_fill(0, 256, false));
|
||||
self::$blastResistance = \SplFixedArray::fromArray(array_fill(0, 256, 0));
|
||||
|
||||
@ -341,7 +338,6 @@ class BlockFactory{
|
||||
self::$fullList[($id << 4) | $meta] = $variant;
|
||||
}
|
||||
|
||||
self::$solid[$id] = $block->isSolid();
|
||||
self::$lightFilter[$id] = min(15, $block->getLightFilter() + 1); //opacity plus 1 standard light filter
|
||||
self::$diffusesSkyLight[$id] = $block->diffusesSkyLight();
|
||||
self::$blastResistance[$id] = $block->getBlastResistance();
|
||||
|
@ -1194,13 +1194,13 @@ abstract class Entity extends Location implements Metadatable, EntityIds{
|
||||
$diffY = $y - $floorY;
|
||||
$diffZ = $z - $floorZ;
|
||||
|
||||
if(BlockFactory::$solid[$this->level->getBlockIdAt($floorX, $floorY, $floorZ)]){
|
||||
$westNonSolid = !BlockFactory::$solid[$this->level->getBlockIdAt($floorX - 1, $floorY, $floorZ)];
|
||||
$eastNonSolid = !BlockFactory::$solid[$this->level->getBlockIdAt($floorX + 1, $floorY, $floorZ)];
|
||||
$downNonSolid = !BlockFactory::$solid[$this->level->getBlockIdAt($floorX, $floorY - 1, $floorZ)];
|
||||
$upNonSolid = !BlockFactory::$solid[$this->level->getBlockIdAt($floorX, $floorY + 1, $floorZ)];
|
||||
$northNonSolid = !BlockFactory::$solid[$this->level->getBlockIdAt($floorX, $floorY, $floorZ - 1)];
|
||||
$southNonSolid = !BlockFactory::$solid[$this->level->getBlockIdAt($floorX, $floorY, $floorZ + 1)];
|
||||
if($this->level->getBlockAt($floorX, $floorY, $floorZ)->isSolid()){
|
||||
$westNonSolid = !$this->level->getBlockAt($floorX - 1, $floorY, $floorZ)->isSolid();
|
||||
$eastNonSolid = !$this->level->getBlockAt($floorX + 1, $floorY, $floorZ)->isSolid();
|
||||
$downNonSolid = !$this->level->getBlockAt($floorX, $floorY - 1, $floorZ)->isSolid();
|
||||
$upNonSolid = !$this->level->getBlockAt($floorX, $floorY + 1, $floorZ)->isSolid();
|
||||
$northNonSolid = !$this->level->getBlockAt($floorX, $floorY, $floorZ - 1)->isSolid();
|
||||
$southNonSolid = !$this->level->getBlockAt($floorX, $floorY, $floorZ + 1)->isSolid();
|
||||
|
||||
$direction = -1;
|
||||
$limit = 9999;
|
||||
|
@ -61,7 +61,7 @@ class SpruceTree extends Tree{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(!BlockFactory::$solid[$level->getBlockIdAt($xx, $yyy, $zz)]){
|
||||
if(!BlockFactory::get($level->getBlockIdAt($xx, $yyy, $zz))->isSolid()){
|
||||
$level->setBlockIdAt($xx, $yyy, $zz, $this->leafBlock);
|
||||
$level->setBlockDataAt($xx, $yyy, $zz, $this->type);
|
||||
}
|
||||
|
@ -109,7 +109,7 @@ abstract class Tree{
|
||||
if($xOff === $mid and $zOff === $mid and ($yOff === 0 or $random->nextBoundedInt(2) === 0)){
|
||||
continue;
|
||||
}
|
||||
if(!BlockFactory::$solid[$level->getBlockIdAt($xx, $yy, $zz)]){
|
||||
if(!BlockFactory::get($level->getBlockIdAt($xx, $yy, $zz))->isSolid()){
|
||||
$level->setBlockIdAt($xx, $yy, $zz, $this->leafBlock);
|
||||
$level->setBlockDataAt($xx, $yy, $zz, $this->type);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user