mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-22 00:33:59 +00:00
Drop experience on death
This commit is contained in:
parent
0f30467f62
commit
0410df77aa
@ -1433,6 +1433,14 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{
|
||||
return [];
|
||||
}
|
||||
|
||||
public function getXpDropAmount() : int{
|
||||
if(!$this->isCreative()){
|
||||
return min(100, $this->getCurrentTotalXp());
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
protected function checkGroundState(float $movX, float $movY, float $movZ, float $dx, float $dy, float $dz){
|
||||
if(!$this->onGround or $movY != 0){
|
||||
$bb = clone $this->boundingBox;
|
||||
|
@ -510,7 +510,9 @@ abstract class Living extends Entity implements Damageable{
|
||||
$this->deadTicks += $tickDiff;
|
||||
if($this->deadTicks >= $this->maxDeadTicks){
|
||||
$this->endDeathAnimation();
|
||||
//TODO: spawn experience orbs here
|
||||
|
||||
//TODO: check death conditions (must have been damaged by player < 5 seconds from death)
|
||||
$this->level->dropExperience($this, $this->getXpDropAmount());
|
||||
}
|
||||
}
|
||||
|
||||
@ -660,6 +662,14 @@ abstract class Living extends Entity implements Damageable{
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the amount of XP this mob will drop on death.
|
||||
* @return int
|
||||
*/
|
||||
public function getXpDropAmount() : int{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $maxDistance
|
||||
* @param int $maxLength
|
||||
|
@ -57,4 +57,9 @@ class Zombie extends Monster{
|
||||
|
||||
return $drops;
|
||||
}
|
||||
|
||||
public function getXpDropAmount() : int{
|
||||
//TODO: check for equipment and whether it's a baby
|
||||
return 5;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user