From 9b4d82630b9b063e3bac87d89f95ebb20ba2bffd Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Thu, 20 Sep 2018 16:26:15 +0100 Subject: [PATCH] BlockFactory: remove $solid this is premature optimization and will run into problems once we enter the flattening. --- src/pocketmine/block/BlockFactory.php | 4 ---- src/pocketmine/entity/Entity.php | 14 +++++++------- .../level/generator/object/SpruceTree.php | 2 +- src/pocketmine/level/generator/object/Tree.php | 2 +- 4 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/pocketmine/block/BlockFactory.php b/src/pocketmine/block/BlockFactory.php index bdce2f63f..6089234ac 100644 --- a/src/pocketmine/block/BlockFactory.php +++ b/src/pocketmine/block/BlockFactory.php @@ -33,8 +33,6 @@ class BlockFactory{ /** @var \SplFixedArray */ private static $fullList = null; - /** @var \SplFixedArray */ - public static $solid = null; /** @var \SplFixedArray */ public static $lightFilter = null; /** @var \SplFixedArray */ @@ -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(); diff --git a/src/pocketmine/entity/Entity.php b/src/pocketmine/entity/Entity.php index bc4e5fc36..bfeb108ab 100644 --- a/src/pocketmine/entity/Entity.php +++ b/src/pocketmine/entity/Entity.php @@ -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; diff --git a/src/pocketmine/level/generator/object/SpruceTree.php b/src/pocketmine/level/generator/object/SpruceTree.php index eb09978c5..8201e20b4 100644 --- a/src/pocketmine/level/generator/object/SpruceTree.php +++ b/src/pocketmine/level/generator/object/SpruceTree.php @@ -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); } diff --git a/src/pocketmine/level/generator/object/Tree.php b/src/pocketmine/level/generator/object/Tree.php index e79dd6cb9..f25bcf4bc 100644 --- a/src/pocketmine/level/generator/object/Tree.php +++ b/src/pocketmine/level/generator/object/Tree.php @@ -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); }