BlockFactory: remove $solid

this is premature optimization and will run into problems once we enter the flattening.
This commit is contained in:
Dylan K. Taylor 2018-09-20 16:26:15 +01:00
parent 19e68f98a7
commit 9b4d82630b
4 changed files with 9 additions and 13 deletions

View File

@ -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();

View File

@ -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;

View File

@ -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);
}

View File

@ -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);
}