Mycelium spreads like grass and MonsterSpawner breaktime added

This commit is contained in:
Intyre 2014-08-18 20:06:18 +02:00
parent e91781cbf2
commit 532b12c6c0
2 changed files with 43 additions and 0 deletions

View File

@ -28,4 +28,25 @@ class MonsterSpawner extends Solid{
parent::__construct(self::MONSTER_SPAWNER, 0, "Monster Spawner");
$this->hardness = 25;
}
public function getBreakTime(Item $item){
switch($item->isPickaxe()){
case 5:
return 0.95;
case 4:
return 1.25;
case 3:
return 1.9;
case 2:
return 0.65;
case 1:
return 3.75;
default:
return 25;
}
}
public function getDrops(Item $item){
return [];
}
}

View File

@ -28,4 +28,26 @@ class Mycelium extends Solid{
parent::__construct(self::MYCELIUM, 0, "Mycelium");
$this->hardness = 2.5;
}
public function getDrops(Item $item){
return [
[Item::DIRT, 0, 1],
];
}
public function onUpdate($type){
if($type === Level::BLOCK_UPDATE_RANDOM){
//TODO: light levels
$x = mt_rand($this->x - 1, $this->x + 1);
$y = mt_rand($this->y - 2, $this->y + 2);
$z = mt_rand($this->z - 1, $this->z + 1);
$block = $this->getLevel()->getBlockIdAt($x, $y, $z);
if($block === Block::DIRT){
$block = $this->getLevel()->getBlock(new Vector3($x, $y, $z));
if($block->getSide(1) instanceof Transparent){
$this->getLevel()->setBlock($block, new Mycelium());
}
}
}
}
}