PocketMine-MP  1.4 - API 1.10.0
 All Classes Namespaces Functions Variables Pages
MovePlayerPacket.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 
22 namespace pocketmine\network\protocol;
23 
24 #include <rules/DataPacket.h>
25 
26 
28  public static $pool = [];
29  public static $next = 0;
30 
31  public $eid;
32  public $x;
33  public $y;
34  public $z;
35  public $yaw;
36  public $pitch;
37  public $bodyYaw;
38  public $teleport = false;
39 
40  public function pid(){
41  return Info::MOVE_PLAYER_PACKET;
42  }
43 
44  public function clean(){
45  $this->teleport = false;
46  return parent::clean();
47  }
48 
49  public function decode(){
50  $this->eid = $this->getInt();
51  $this->x = $this->getFloat();
52  $this->y = $this->getFloat();
53  $this->z = $this->getFloat();
54  $this->yaw = $this->getFloat();
55  $this->pitch = $this->getFloat();
56  $this->bodyYaw = $this->getFloat();
57  $flags = $this->getByte();
58  $this->teleport = (($flags & 0x80) > 0);
59  }
60 
61  public function encode(){
62  $this->reset();
63  $this->putInt($this->eid);
64  $this->putFloat($this->x);
65  $this->putFloat($this->y);
66  $this->putFloat($this->z);
67  $this->putFloat($this->yaw);
68  $this->putFloat($this->pitch);
69  $this->putFloat($this->bodyYaw);
70  $this->putByte($this->teleport == true ? 0x80 : 0x00);
71  }
72 
73 }