diff --git a/src/entity/Entity.php b/src/entity/Entity.php index c60f2c1c4..c388a741b 100644 --- a/src/entity/Entity.php +++ b/src/entity/Entity.php @@ -1139,6 +1139,7 @@ abstract class Entity{ $this->blocksAround = null; Timings::$entityMove->startTiming(); + Timings::$entityMoveCollision->startTiming(); $wantedX = $dx; $wantedY = $dy; @@ -1223,6 +1224,7 @@ abstract class Entity{ $this->boundingBox = $moveBB; } + Timings::$entityMoveCollision->stopTiming(); $this->location = new Location( ($this->boundingBox->minX + $this->boundingBox->maxX) / 2, diff --git a/src/entity/projectile/Projectile.php b/src/entity/projectile/Projectile.php index 68afabd08..b04f8c61b 100644 --- a/src/entity/projectile/Projectile.php +++ b/src/entity/projectile/Projectile.php @@ -175,7 +175,8 @@ abstract class Projectile extends Entity{ protected function move(float $dx, float $dy, float $dz) : void{ $this->blocksAround = null; - Timings::$entityMove->startTiming(); + Timings::$projectileMove->startTiming(); + Timings::$projectileMoveRayTrace->startTiming(); $start = $this->location->asVector3(); $end = $start->add($dx, $dy, $dz); @@ -221,6 +222,8 @@ abstract class Projectile extends Entity{ } } + Timings::$projectileMoveRayTrace->stopTiming(); + $this->location = Location::fromObject( $end, $this->location->world, @@ -268,7 +271,7 @@ abstract class Projectile extends Entity{ $this->getWorld()->onEntityMoved($this); $this->checkBlockIntersections(); - Timings::$entityMove->stopTiming(); + Timings::$projectileMove->stopTiming(); } /** diff --git a/src/timings/Timings.php b/src/timings/Timings.php index 3bcaa6735..fa21dace4 100644 --- a/src/timings/Timings.php +++ b/src/timings/Timings.php @@ -89,6 +89,12 @@ abstract class Timings{ /** @var TimingsHandler */ public static $entityMove; + + public static TimingsHandler $entityMoveCollision; + + public static TimingsHandler $projectileMove; + public static TimingsHandler $projectileMoveRayTrace; + /** @var TimingsHandler */ public static $playerCheckNearEntities; /** @var TimingsHandler */ @@ -183,6 +189,11 @@ abstract class Timings{ self::$syncPlayerDataSave = new TimingsHandler("Player Data Save"); self::$entityMove = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Entity Movement"); + self::$entityMoveCollision = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Entity Movement - Collision Checks", self::$entityMove); + + self::$projectileMove = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Projectile Movement", self::$entityMove); + self::$projectileMoveRayTrace = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Projectile Movement - Ray Tracing", self::$projectileMove); + self::$playerCheckNearEntities = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "checkNearEntities"); self::$tickEntity = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Entity Tick"); self::$tickTileEntity = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Block Entity Tick");