3
3
4
4
use pocketmine \item \Item ;
5
5
use pocketmine \event \entity \EntityDamageByEntityEvent ;
6
- use pocketmine \network \protocol \AddMobPacket ;
6
+ use pocketmine \network \protocol \AddEntityPacket ;
7
+ use pocketmine \network \Network ;
7
8
use pocketmine \Player ;
8
9
use pocketmine \entity \Rideable ;
9
10
use pocketmine \entity \Animal ;
@@ -30,37 +31,22 @@ public function getName(){
30
31
public static $ mindist = 3 ;
31
32
32
33
public function spawnTo (Player $ player ){
33
- $ pk = new AddMobPacket ();
34
+
35
+ $ pk = new AddEntityPacket ();
34
36
$ pk ->eid = $ this ->getId ();
35
37
$ pk ->type = self ::NETWORK_ID ;
36
38
$ pk ->x = $ this ->x ;
37
39
$ pk ->y = $ this ->y ;
38
40
$ pk ->z = $ this ->z ;
41
+ $ pk ->speedX = $ this ->motionX ;
42
+ $ pk ->speedY = $ this ->motionY ;
43
+ $ pk ->speedZ = $ this ->motionZ ;
39
44
$ pk ->yaw = $ this ->yaw ;
40
45
$ pk ->pitch = $ this ->pitch ;
41
- $ pk ->metadata = $ this ->getData ();
42
- $ player ->dataPacket ($ pk );
43
-
44
- $ player ->addEntityMotion ($ this ->getId (), $ this ->motionX , $ this ->motionY , $ this ->motionZ );
45
-
46
+ $ pk ->metadata = $ this ->dataProperties ;
47
+ $ player ->dataPacket ($ pk ->setChannel (Network::CHANNEL_ENTITY_SPAWNING ));
46
48
parent ::spawnTo ($ player );
47
49
}
48
-
49
- public function getData (){ //TODO
50
- $ flags = 0 ;
51
- $ flags |= $ this ->fireTicks > 0 ? 1 : 0 ;
52
- //$flags |= ($this->crouched === true ? 0b10:0) << 1;
53
- //$flags |= ($this->inAction === true ? 0b10000:0);
54
- $ d = [
55
- 0 => ["type " => 0 , "value " => $ flags ],
56
- 1 => ["type " => 1 , "value " => $ this ->airTicks ],
57
- 16 => ["type " => 0 , "value " => 0 ],
58
- 17 => ["type " => 6 , "value " => [0 , 0 , 0 ]],
59
- ];
60
-
61
- return $ d ;
62
- }
63
-
64
50
public function getDrops (){
65
51
return [Item::get ($ this ->fireTicks > 0 ? Item::COOKED_PORKCHOP : Item::RAW_PORKCHOP , 0 , mt_rand (1 , 3 ))];
66
52
}
0 commit comments