PocketMine-MP 5.35.1 git-e32e836dad793a3a3c8ddd8927c00e112b1e576a
Loading...
Searching...
No Matches
CameraAimAssistCategoryPriorities.php
1<?php
2
3/*
4 * This file is part of BedrockProtocol.
5 * Copyright (C) 2014-2022 PocketMine Team <https://github.com/pmmp/BedrockProtocol>
6 *
7 * BedrockProtocol is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Lesser General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 */
12
13declare(strict_types=1);
14
15namespace pocketmine\network\mcpe\protocol\types\camera;
16
17use pmmp\encoding\ByteBufferReader;
18use pmmp\encoding\ByteBufferWriter;
19use pmmp\encoding\LE;
20use pmmp\encoding\VarInt;
22use function count;
23
25
30 public function __construct(
31 private array $entities,
32 private array $blocks,
33 private ?int $defaultEntityPriority,
34 private ?int $defaultBlockPriority
35 ){}
36
40 public function getEntities() : array{ return $this->entities; }
41
45 public function getBlocks() : array{ return $this->blocks; }
46
47 public function getDefaultEntityPriority() : ?int{ return $this->defaultEntityPriority; }
48
49 public function getDefaultBlockPriority() : ?int{ return $this->defaultBlockPriority; }
50
51 public static function read(ByteBufferReader $in) : self{
52 $entities = [];
53 for($i = 0, $len = VarInt::readUnsignedInt($in); $i < $len; ++$i){
54 $entities[] = CameraAimAssistCategoryEntityPriority::read($in);
55 }
56
57 $blocks = [];
58 for($i = 0, $len = VarInt::readUnsignedInt($in); $i < $len; ++$i){
59 $blocks[] = CameraAimAssistCategoryBlockPriority::read($in);
60 }
61
62 $defaultEntityPriority = CommonTypes::readOptional($in, LE::readSignedInt(...));
63 $defaultBlockPriority = CommonTypes::readOptional($in, LE::readSignedInt(...));
64 return new self(
65 $entities,
66 $blocks,
67 $defaultEntityPriority,
68 $defaultBlockPriority
69 );
70 }
71
72 public function write(ByteBufferWriter $out) : void{
73 VarInt::writeUnsignedInt($out, count($this->entities));
74 foreach($this->entities as $entity){
75 $entity->write($out);
76 }
77
78 VarInt::writeUnsignedInt($out, count($this->blocks));
79 foreach($this->blocks as $block){
80 $block->write($out);
81 }
82
83 CommonTypes::writeOptional($out, $this->defaultEntityPriority, LE::writeSignedInt(...));
84 CommonTypes::writeOptional($out, $this->defaultBlockPriority, LE::writeSignedInt(...));
85 }
86}
__construct(private array $entities, private array $blocks, private ?int $defaultEntityPriority, private ?int $defaultBlockPriority)