PocketMine-MP
5.23.3 git-f7687af337d001ddbcc47b8e773f014a33faa662
Loading...
Searching...
No Matches
NetherWartPlant.php
1
<?php
2
3
/*
4
*
5
* ____ _ _ __ __ _ __ __ ____
6
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
7
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
8
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
9
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
10
*
11
* This program is free software: you can redistribute it and/or modify
12
* it under the terms of the GNU Lesser General Public License as published by
13
* the Free Software Foundation, either version 3 of the License, or
14
* (at your option) any later version.
15
*
16
* @author PocketMine Team
17
* @link http://www.pocketmine.net/
18
*
19
*
20
*/
21
22
declare(strict_types=1);
23
24
namespace
pocketmine\block
;
25
26
use pocketmine\block\utils\AgeableTrait;
27
use
pocketmine\block\utils\BlockEventHelper
;
28
use
pocketmine\block\utils\FortuneDropHelper
;
29
use pocketmine\block\utils\StaticSupportTrait;
30
use
pocketmine\item\Item
;
31
use
pocketmine\math\Facing
;
32
use
function
mt_rand;
33
34
class
NetherWartPlant
extends
Flowable
{
35
use AgeableTrait;
36
use StaticSupportTrait;
37
38
public
const
MAX_AGE = 3;
39
40
private
function
canBeSupportedAt(
Block
$block) :
bool
{
41
return
$block->
getSide
(Facing::DOWN)->getTypeId() === BlockTypeIds::SOUL_SAND;
42
}
43
44
public
function
ticksRandomly
() : bool{
45
return $this->age < self::MAX_AGE;
46
}
47
48
public
function
onRandomTick
() : void{
49
if($this->age < self::MAX_AGE && mt_rand(0, 10) === 0){
//Still growing
50
$block = clone $this;
51
$block->age++;
52
BlockEventHelper::grow($this, $block,
null
);
53
}
54
}
55
56
public
function
getDropsForCompatibleTool
(
Item
$item) : array{
57
return [
58
$this->asItem()->setCount($this->age === self::MAX_AGE ?
FortuneDropHelper
::discrete($item, 2, 4) : 1)
59
];
60
}
61
}
pocketmine\block\Block
Definition
Block.php:62
pocketmine\block\Block\getSide
getSide(int $side, int $step=1)
Definition
Block.php:770
pocketmine\block\Flowable
Definition
Flowable.php:34
pocketmine\block\NetherWartPlant
Definition
NetherWartPlant.php:34
pocketmine\block\NetherWartPlant\getDropsForCompatibleTool
getDropsForCompatibleTool(Item $item)
Definition
NetherWartPlant.php:56
pocketmine\block\NetherWartPlant\ticksRandomly
ticksRandomly()
Definition
NetherWartPlant.php:44
pocketmine\block\NetherWartPlant\onRandomTick
onRandomTick()
Definition
NetherWartPlant.php:48
pocketmine\block\utils\BlockEventHelper
Definition
BlockEventHelper.php:39
pocketmine\block\utils\FortuneDropHelper
Definition
FortuneDropHelper.php:33
pocketmine\item\Item
Definition
Item.php:60
pocketmine\math\Facing
Definition
Facing.php:28
pocketmine\block
Definition
ActivatorRail.php:24
src
block
NetherWartPlant.php
Generated by
1.12.0