mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-17 03:08:58 +00:00
commit
9a3929d8ad
@ -63,13 +63,16 @@ class Grass extends Solid{
|
|||||||
|
|
||||||
public function onUpdate($type){
|
public function onUpdate($type){
|
||||||
if($type === Level::BLOCK_UPDATE_RANDOM){
|
if($type === Level::BLOCK_UPDATE_RANDOM){
|
||||||
//TODO: light levels
|
$block = $this->getLevel()->getBlock(new Vector3($this->x, $this->y, $this->z));
|
||||||
|
if($block->getSide(1)->getLightLevel() < 4){
|
||||||
|
Server::getInstance()->getPluginManager()->callEvent($ev = new BlockSpreadEvent($block, $this, new Dirt()));
|
||||||
|
}elseif($block->getSide(1)->getLightLevel() >= 9){
|
||||||
|
for($l = 0; $l < 4; ++$l){
|
||||||
$x = mt_rand($this->x - 1, $this->x + 1);
|
$x = mt_rand($this->x - 1, $this->x + 1);
|
||||||
$y = mt_rand($this->y - 2, $this->y + 2);
|
$y = mt_rand($this->y - 2, $this->y + 2);
|
||||||
$z = mt_rand($this->z - 1, $this->z + 1);
|
$z = mt_rand($this->z - 1, $this->z + 1);
|
||||||
$block = $this->getLevel()->getBlock(new Vector3($x, $y, $z));
|
$block = $this->getLevel()->getBlock(new Vector3($x, $y, $z));
|
||||||
if($block->getId() === Block::DIRT){
|
if($block->getId() === Block::DIRT && $block->getDamage() === 0x0F && $block->getSide(1)->getLightLevel() >= 4 && $block->z <= 2){
|
||||||
if($block->getSide(1) instanceof Transparent){
|
|
||||||
Server::getInstance()->getPluginManager()->callEvent($ev = new BlockSpreadEvent($block, $this, new Grass()));
|
Server::getInstance()->getPluginManager()->callEvent($ev = new BlockSpreadEvent($block, $this, new Grass()));
|
||||||
if(!$ev->isCancelled()){
|
if(!$ev->isCancelled()){
|
||||||
$this->getLevel()->setBlock($block, $ev->getNewState());
|
$this->getLevel()->setBlock($block, $ev->getNewState());
|
||||||
@ -78,6 +81,7 @@ class Grass extends Solid{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function onActivate(Item $item, Player $player = null){
|
public function onActivate(Item $item, Player $player = null){
|
||||||
if($item->getId() === Item::DYE and $item->getDamage() === 0x0F){
|
if($item->getId() === Item::DYE and $item->getDamage() === 0x0F){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user