mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-24 20:34:02 +00:00
Implemented farmland hydration
TODO: make crops take notice of this
This commit is contained in:
parent
a4ca3f1d1c
commit
90165cf99d
@ -70,7 +70,39 @@ class Farmland extends Transparent{
|
|||||||
$this->level->setBlock($this, BlockFactory::get(Block::DIRT), true);
|
$this->level->setBlock($this, BlockFactory::get(Block::DIRT), true);
|
||||||
return $type;
|
return $type;
|
||||||
}elseif($type === Level::BLOCK_UPDATE_RANDOM){
|
}elseif($type === Level::BLOCK_UPDATE_RANDOM){
|
||||||
//TODO: hydration
|
if(!$this->canHydrate()){
|
||||||
|
if($this->meta > 0){
|
||||||
|
$this->meta--;
|
||||||
|
$this->level->setBlock($this, $this, false, false);
|
||||||
|
}else{
|
||||||
|
$this->level->setBlock($this, BlockFactory::get(Block::DIRT), false, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $type;
|
||||||
|
}elseif($this->meta < 7){
|
||||||
|
$this->meta = 7;
|
||||||
|
$this->level->setBlock($this, $this, false, false);
|
||||||
|
|
||||||
|
return $type;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function canHydrate() : bool{
|
||||||
|
//TODO: check rain
|
||||||
|
$start = $this->add(-4, 0, -4);
|
||||||
|
$end = $this->add(4, 1, 4);
|
||||||
|
for($y = $start->y; $y <= $end->y; ++$y){
|
||||||
|
for($z = $start->z; $z <= $end->z; ++$z){
|
||||||
|
for($x = $start->x; $x <= $end->x; ++$x){
|
||||||
|
$id = $this->level->getBlockIdAt($x, $y, $z);
|
||||||
|
if($id === Block::STILL_WATER or $id === Block::FLOWING_WATER){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user