From edad52c6ea4ad5ddf7719b82073a9e3d22415899 Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Sat, 30 Aug 2014 23:30:01 +0200 Subject: [PATCH] Added Glass Pane bounding box --- src/pocketmine/block/GlassPane.php | 4 +- src/pocketmine/block/Thin.php | 80 ++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 3 deletions(-) create mode 100644 src/pocketmine/block/Thin.php diff --git a/src/pocketmine/block/GlassPane.php b/src/pocketmine/block/GlassPane.php index 5620c4dd9..40a9b4f7e 100644 --- a/src/pocketmine/block/GlassPane.php +++ b/src/pocketmine/block/GlassPane.php @@ -22,11 +22,9 @@ namespace pocketmine\block; -class GlassPane extends Transparent{ +class GlassPane extends Thin{ public function __construct(){ parent::__construct(self::GLASS_PANE, 0, "Glass Pane"); - $this->isFullBlock = false; - $this->isSolid = false; } } \ No newline at end of file diff --git a/src/pocketmine/block/Thin.php b/src/pocketmine/block/Thin.php new file mode 100644 index 000000000..cb8886cc3 --- /dev/null +++ b/src/pocketmine/block/Thin.php @@ -0,0 +1,80 @@ +canConnect($this->getSide(2)); + $flag1 = $this->canConnect($this->getSide(3)); + $flag2 = $this->canConnect($this->getSide(4)); + $flag3 = $this->canConnect($this->getSide(5)); + + if((!$flag2 or !$flag3) and ($flag2 or $flag3 or $flag or $flag1)){ + if($flag2 and !$flag3){ + $f = 0; + }elseif(!$flag2 and $flag3){ + $f1 = 1; + } + }else{ + $f = 0; + $f1 = 1; + } + + if((!$flag or !$flag1) and ($flag2 or $flag3 or $flag or $flag1)){ + if($flag and !$flag1){ + $f2 = 0; + }elseif(!$flag and $flag1){ + $f3 = 1; + } + }else{ + $f2 = 0; + $f3 = 1; + } + + return new AxisAlignedBB( + $this->x + $f, + $this->y, + $this->z + $f2, + $this->x + $f1, + $this->y + 1, + $this->z + $f3 + ); + } + + + public function canConnect(Block $block){ + return $block->isSolid or $block->getID() === $this->getID() or $block->getID() === self::GLASS_PANE or $block->getID() === self::GLASS; + } + +} \ No newline at end of file