From 214dcef1ea32f686b798bd4f2f49ac9a20a325e9 Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Sun, 24 Aug 2014 15:55:34 +0200 Subject: [PATCH] Improved Air block collision check --- src/pocketmine/block/Air.php | 4 ++++ src/pocketmine/block/Block.php | 4 ++-- src/pocketmine/level/Level.php | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/pocketmine/block/Air.php b/src/pocketmine/block/Air.php index 19a453934..4a9b5b456 100644 --- a/src/pocketmine/block/Air.php +++ b/src/pocketmine/block/Air.php @@ -47,4 +47,8 @@ class Air extends Transparent{ return new AxisAlignedBB(0, 0, 0, 0, 0, 0); } + public function collidesWithBB(AxisAlignedBB $bb, &$list = []){ + + } + } \ No newline at end of file diff --git a/src/pocketmine/block/Block.php b/src/pocketmine/block/Block.php index 3f012addc..c468bd4de 100644 --- a/src/pocketmine/block/Block.php +++ b/src/pocketmine/block/Block.php @@ -825,9 +825,9 @@ abstract class Block extends Position implements Metadatable{ * @param AxisAlignedBB $bb * @param Block[] $list */ - public function collidesWithBB(AxisAlignedBB $bb, &$list = array()){ + public function collidesWithBB(AxisAlignedBB $bb, &$list = []){ $bb2 = $this->getBoundingBox(); - if($bb2->intersectsWith($bb)){ + if($bb2 !== null and $bb2->intersectsWith($bb)){ $list[] = $bb2; } } diff --git a/src/pocketmine/level/Level.php b/src/pocketmine/level/Level.php index 941602d72..e7998b124 100644 --- a/src/pocketmine/level/Level.php +++ b/src/pocketmine/level/Level.php @@ -666,6 +666,7 @@ class Level implements ChunkManager, Metadatable{ $collides = []; + //TODO: optimize this loop, check collision cube boundaries for($z = $minZ; $z < $maxZ; ++$z){ for($x = $minX; $x < $maxX; ++$x){ if($this->isChunkLoaded($x >> 4, $z >> 4)){