PocketMine-MP 5.14.2 git-50e2c469a547a16a23b2dc691e70a51d34e29395
EntitySizeInfo.php
1<?php
2
3/*
4 *
5 * ____ _ _ __ __ _ __ __ ____
6 * | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
7 * | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
8 * | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
9 * |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
10 *
11 * This program is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License as published by
13 * the Free Software Foundation, either version 3 of the License, or
14 * (at your option) any later version.
15 *
16 * @author PocketMine Team
17 * @link http://www.pocketmine.net/
18 *
19 *
20 */
21
22declare(strict_types=1);
23
24namespace pocketmine\entity;
25
26use function min;
27
28final class EntitySizeInfo{
29 private float $eyeHeight;
30
31 public function __construct(
32 private float $height,
33 private float $width,
34 ?float $eyeHeight = null
35 ){
36 $this->eyeHeight = $eyeHeight ?? min($this->height / 2 + 0.1, $this->height);
37 }
38
39 public function getHeight() : float{ return $this->height; }
40
41 public function getWidth() : float{ return $this->width; }
42
43 public function getEyeHeight() : float{ return $this->eyeHeight; }
44
45 public function scale(float $newScale) : self{
46 return new self(
47 $this->height * $newScale,
48 $this->width * $newScale,
49 $this->eyeHeight * $newScale
50 );
51 }
52}