mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-19 15:35:52 +00:00
Merge pull request #2395 from PEMapModder/patch-6
Allow $base in knockback() to be dynamic and getters/setters in EntityDa...
This commit is contained in:
commit
9fc250956f
@ -101,7 +101,7 @@ abstract class Living extends Entity implements Damageable{
|
||||
$deltaX = $this->x - $e->x;
|
||||
$deltaZ = $this->z - $e->z;
|
||||
$yaw = atan2($deltaX, $deltaZ);
|
||||
$this->knockBack($e, $damage, sin($yaw), cos($yaw));
|
||||
$this->knockBack($e, $damage, sin($yaw), cos($yaw), $source->getKnockBack());
|
||||
}
|
||||
|
||||
$this->setHealth($this->getHealth() - $damage);
|
||||
@ -114,9 +114,8 @@ abstract class Living extends Entity implements Damageable{
|
||||
$this->attackTime = 10; //0.5 seconds cooldown
|
||||
}
|
||||
|
||||
public function knockBack(Entity $attacker, $damage, $x, $z){
|
||||
public function knockBack(Entity $attacker, $damage, $x, $z, $base = 0.4){
|
||||
$f = sqrt($x ** 2 + $z ** 2);
|
||||
$base = 0.4;
|
||||
|
||||
$motion = new Vector3($this->motionX, $this->motionY, $this->motionZ);
|
||||
|
||||
|
@ -29,16 +29,19 @@ class EntityDamageByEntityEvent extends EntityDamageEvent{
|
||||
|
||||
/** @var Entity */
|
||||
private $damager;
|
||||
|
||||
/** @var float */
|
||||
private $knockBack;
|
||||
|
||||
/**
|
||||
* @param Entity $damager
|
||||
* @param Entity $entity
|
||||
* @param int $cause
|
||||
* @param int|int[] $damage
|
||||
* @param float $knockBack
|
||||
*/
|
||||
public function __construct(Entity $damager, Entity $entity, $cause, $damage){
|
||||
public function __construct(Entity $damager, Entity $entity, $cause, $damage, $knockBack = 0.4){
|
||||
$this->damager = $damager;
|
||||
$this->knockBack = $knockBack;
|
||||
parent::__construct($entity, $cause, $damage);
|
||||
}
|
||||
|
||||
@ -48,6 +51,16 @@ class EntityDamageByEntityEvent extends EntityDamageEvent{
|
||||
public function getDamager(){
|
||||
return $this->damager;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
/**
|
||||
* @return float
|
||||
*/
|
||||
public function getKnockBack(){
|
||||
return $this->knockBack;
|
||||
}
|
||||
/**
|
||||
* @param float $knockBack
|
||||
*/
|
||||
public function setKnockBack($knockBack){
|
||||
$this->knockBack = $knockBack;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user