Fix a bunch of block update bugs due to ancient code

This commit is contained in:
Dylan K. Taylor 2016-12-16 17:08:38 +00:00
parent 0380c78926
commit aa8a13c4a3
7 changed files with 14 additions and 11 deletions

View File

@ -52,7 +52,7 @@ class DoublePlant extends Flowable{
public function onUpdate($type){
if($type === Level::BLOCK_UPDATE_NORMAL){
if($this->getSide(0)->isTransparent() === true){ //Replace with common break method
$this->getLevel()->setBlock($this, new Air(), false, false, true);
$this->getLevel()->setBlock($this, new Air(), true, true);
return Level::BLOCK_UPDATE_NORMAL;
}

View File

@ -22,7 +22,6 @@
namespace pocketmine\block;
use pocketmine\entity\Entity;
use pocketmine\item\Item;
use pocketmine\level\Level;
use pocketmine\math\Vector3;
use pocketmine\nbt\tag\ByteTag;
@ -31,7 +30,6 @@ use pocketmine\nbt\tag\DoubleTag;
use pocketmine\nbt\tag\FloatTag;
use pocketmine\nbt\tag\IntTag;
use pocketmine\nbt\tag\ListTag;
use pocketmine\Player;
abstract class Fallable extends Solid{

View File

@ -124,11 +124,16 @@ class Ladder extends Transparent{
public function onUpdate($type){
if($type === Level::BLOCK_UPDATE_NORMAL){
/*if($this->getSide(0)->getId() === self::AIR){ //Replace with common break method
Server::getInstance()->api->entity->drop($this, Item::get(LADDER, 0, 1));
$this->getLevel()->setBlock($this, new Air(), true, true, true);
$sides = [
2 => 3,
3 => 2,
4 => 5,
5 => 4
];
if(!$this->getSide($sides[$this->meta])->isSolid()){ //Replace with common break method
$this->level->setBlock($this, new Air(), true, true);
return Level::BLOCK_UPDATE_NORMAL;
}*/
}
}
return false;

View File

@ -129,7 +129,7 @@ class Leaves extends Transparent{
if($type === Level::BLOCK_UPDATE_NORMAL){
if(($this->meta & 0b00001100) === 0){
$this->meta |= 0x08;
$this->getLevel()->setBlock($this, $this, false, false, true);
$this->getLevel()->setBlock($this, $this, true, false);
}
}elseif($type === Level::BLOCK_UPDATE_RANDOM){
if(($this->meta & 0b00001100) === 0x08){

View File

@ -112,7 +112,7 @@ class Leaves2 extends Leaves{
if($type === Level::BLOCK_UPDATE_NORMAL){
if(($this->meta & 0b00001100) === 0){
$this->meta |= 0x08;
$this->getLevel()->setBlock($this, $this, false, false, true);
$this->getLevel()->setBlock($this, $this, true, false);
}
}elseif($type === Level::BLOCK_UPDATE_RANDOM){
if(($this->meta & 0b00001100) === 0x08){

View File

@ -62,7 +62,7 @@ class TallGrass extends Flowable{
public function onUpdate($type){
if($type === Level::BLOCK_UPDATE_NORMAL){
if($this->getSide(0)->isTransparent() === true){ //Replace with common break method
$this->getLevel()->setBlock($this, new Air(), false, false, true);
$this->getLevel()->setBlock($this, new Air(), true, true);
return Level::BLOCK_UPDATE_NORMAL;
}

View File

@ -146,7 +146,7 @@ class Vine extends Transparent{
if($type === Level::BLOCK_UPDATE_NORMAL){
/*if($this->getSide(0)->getId() === self::AIR){ //Replace with common break method
Server::getInstance()->api->entity->drop($this, Item::get(LADDER, 0, 1));
$this->getLevel()->setBlock($this, new Air(), true, true, true);
$this->getLevel()->setBlock($this, new Air(), true, true);
return Level::BLOCK_UPDATE_NORMAL;
}*/
}