Compare commits

..

1 Commits

Author SHA1 Message Date
fbe6a89777 EndCrystal: defer explosion until next tick update 2025-09-10 20:55:20 +01:00

View File

@ -52,6 +52,8 @@ class EndCrystal extends Entity implements Explosive{
protected bool $showBase = false;
protected ?Vector3 $beamTarget = null;
private bool $primed = false;
protected function getInitialSizeInfo() : EntitySizeInfo{ return new EntitySizeInfo(2.0, 2.0); }
protected function getInitialDragMultiplier() : float{ return 1.0; }
@ -88,11 +90,9 @@ class EndCrystal extends Entity implements Explosive{
parent::attack($source);
if(
$source->getCause() !== EntityDamageEvent::CAUSE_VOID &&
!$this->isFlaggedForDespawn() &&
!$source->isCancelled()
){
$this->flagForDespawn();
$this->explode();
$this->primed = true;
}
}
@ -125,6 +125,13 @@ class EndCrystal extends Entity implements Explosive{
return $nbt;
}
protected function onDeathUpdate(int $tickDiff) : bool{
if($this->primed){
$this->explode();
}
return true;
}
public function explode() : void{
$ev = new EntityPreExplodeEvent($this, 6);
$ev->call();