Corrected block placement area

This commit is contained in:
Shoghi Cervantes Pueyo 2013-01-14 17:13:53 +01:00
parent f47fa6d5dc
commit 3b10613f98
2 changed files with 9 additions and 2 deletions

View File

@ -132,6 +132,14 @@ class Vector3{
return pow($this->x - $x, 2) + pow($this->y - $y, 2) + pow($this->z - $z, 2);
}
}
public function maxPlainDistance($x = 0, $z = 0){
if(($x instanceof Vector3) === true){
return $this->maxPlainDistance($x->x, $x->z);
}else{
return max(abs($this->x - $x), abs($this->z - $z));
}
}
public function __toString(){
return "Vector3(x=".$this->x.",y=".$this->y.",z=".$this->z.")";

View File

@ -232,8 +232,7 @@ class Entity extends stdClass{
public function inBlock($x, $y, $z){
$block = new Vector3($x + 0.5, $y, $z + 0.5);
$me = new Vector3($this->x, $this->y, $this->z);
$up = new Vector3($this->x, $this->y + 1, $this->z);
if($block->distance($me) < 0.8 or $block->distance($up) < 0.8){
if(($y == ((int) $this->y) or $y == (((int) $this->y) + 1)) and $block->maxPlainDistance($me) < 0.8){
return true;
}
return false;