mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-11 00:09:39 +00:00
Entity: Allow disabling gravity for a mob
This commit is contained in:
parent
6f9c4eb8e8
commit
bccc07633c
@ -359,6 +359,8 @@ abstract class Entity extends Location implements Metadatable, EntityIds{
|
||||
protected $gravity;
|
||||
/** @var float */
|
||||
protected $drag;
|
||||
/** @var bool */
|
||||
protected $gravityEnabled = true;
|
||||
|
||||
/** @var Server */
|
||||
protected $server;
|
||||
@ -1046,6 +1048,14 @@ abstract class Entity extends Location implements Metadatable, EntityIds{
|
||||
$this->level->broadcastPacketToViewers($this, $pk);
|
||||
}
|
||||
|
||||
public function hasGravity() : bool{
|
||||
return $this->gravityEnabled;
|
||||
}
|
||||
|
||||
public function setHasGravity(bool $v = true) : void{
|
||||
$this->gravityEnabled = $v;
|
||||
}
|
||||
|
||||
protected function applyDragBeforeGravity() : bool{
|
||||
return false;
|
||||
}
|
||||
@ -1061,7 +1071,9 @@ abstract class Entity extends Location implements Metadatable, EntityIds{
|
||||
$this->motion->y *= $friction;
|
||||
}
|
||||
|
||||
$this->applyGravity();
|
||||
if($this->gravityEnabled){
|
||||
$this->applyGravity();
|
||||
}
|
||||
|
||||
if(!$this->applyDragBeforeGravity()){
|
||||
$this->motion->y *= $friction;
|
||||
|
@ -99,6 +99,7 @@ class Squid extends WaterAnimal{
|
||||
}
|
||||
|
||||
$inWater = $this->isUnderwater();
|
||||
$this->setHasGravity(!$inWater);
|
||||
if(!$inWater){
|
||||
$this->swimDirection = null;
|
||||
}elseif($this->swimDirection !== null){
|
||||
@ -118,12 +119,6 @@ class Squid extends WaterAnimal{
|
||||
return $hasUpdate;
|
||||
}
|
||||
|
||||
protected function applyGravity() : void{
|
||||
if(!$this->isUnderwater()){
|
||||
parent::applyGravity();
|
||||
}
|
||||
}
|
||||
|
||||
public function getDrops() : array{
|
||||
return [
|
||||
ItemFactory::get(Item::DYE, 0, mt_rand(1, 3))
|
||||
|
Loading…
x
Reference in New Issue
Block a user