Fix Fallable not dropping after explosion, Fixes #2735, Fixes #2806.

Signed-off-by: Michael Yoo <michael@yoo.id.au>
This commit is contained in:
Yosshi999 2015-05-23 22:36:04 +09:30 committed by Michael Yoo
parent 76c27fc18b
commit d429992f5b
No known key found for this signature in database
GPG Key ID: 409DBB63E3750CCD

View File

@ -27,6 +27,7 @@ use pocketmine\event\entity\EntityDamageByBlockEvent;
use pocketmine\event\entity\EntityDamageByEntityEvent;
use pocketmine\event\entity\EntityDamageEvent;
use pocketmine\event\entity\EntityExplodeEvent;
use pocketmine\event\block\BlockUpdateEvent;
use pocketmine\item\Item;
use pocketmine\math\AxisAlignedBB;
use pocketmine\math\Math;
@ -51,6 +52,8 @@ class Explosion{
* @var Block[]
*/
public $affectedBlocks = [];
/** @var bool[] */
public $updatedHashes = [];
public $stepLen = 0.3;
/** @var Entity|Block */
private $what;
@ -207,6 +210,16 @@ class Explosion{
}
}
$this->level->setBlockIdAt($block->x, $block->y, $block->z, 0);
for($side = 0; $side <= 6; $side++){
$sideBlock = $block->getSide($side);
if($sideBlock instanceof Block and !isset($this->affectedBlocks[$index = Level::blockHash($sideBlock->x, $sideBlock->y, $sideBlock->z)]) and !isset($this->updatedHashes[$index])){
$this->updatedHashes[$index] = true;
$this->level->getServer()->getPluginManager()->callEvent($ev = new BlockUpdateEvent($sideBlock));
if(!$ev->isCancelled()){
$ev->getBlock()->onUpdate(Level::BLOCK_UPDATE_NORMAL);
}
}
}
$send[] = new Vector3($block->x - $source->x, $block->y - $source->y, $block->z - $source->z);
}
$pk = new ExplodePacket();