PocketMine-MP 5.41.1 git-fcc6fb5566a921cb669160c90f56fb68f5b29123
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
32 public function __construct(
33 private array $entities,
34 private array $blocks,
35 private array $blockTags,
36 private array $entityTypeFamilies,
37 private ?int $defaultEntityPriority,
38 private ?int $defaultBlockPriority
39 ){}
40
44 public function getEntities() : array{ return $this->entities; }
45
49 public function getBlocks() : array{ return $this->blocks; }
50
54 public function getBlockTags() : array{ return $this->blockTags; }
55
59 public function getEntityTypeFamilies() : array{ return $this->entityTypeFamilies; }
60
61 public function getDefaultEntityPriority() : ?int{ return $this->defaultEntityPriority; }
62
63 public function getDefaultBlockPriority() : ?int{ return $this->defaultBlockPriority; }
64
65 public static function read(ByteBufferReader $in) : self{
66 $entities = [];
67 for($i = 0, $len = VarInt::readUnsignedInt($in); $i < $len; ++$i){
68 $entities[] = CameraAimAssistCategoryPriority::read($in);
69 }
70
71 $blocks = [];
72 for($i = 0, $len = VarInt::readUnsignedInt($in); $i < $len; ++$i){
73 $blocks[] = CameraAimAssistCategoryPriority::read($in);
74 }
75
76 $blockTags = [];
77 for($i = 0, $len = VarInt::readUnsignedInt($in); $i < $len; ++$i){
78 $blockTags[] = CameraAimAssistCategoryPriority::read($in);
79 }
80
81 $entityTypeFamilies = [];
82 for($i = 0, $len = VarInt::readUnsignedInt($in); $i < $len; ++$i){
83 $entityTypeFamilies[] = CameraAimAssistCategoryPriority::read($in);
84 }
85
86 $defaultEntityPriority = CommonTypes::readOptional($in, LE::readSignedInt(...));
87 $defaultBlockPriority = CommonTypes::readOptional($in, LE::readSignedInt(...));
88 return new self(
89 $entities,
90 $blocks,
91 $blockTags,
92 $entityTypeFamilies,
93 $defaultEntityPriority,
94 $defaultBlockPriority
95 );
96 }
97
98 public function write(ByteBufferWriter $out) : void{
99 VarInt::writeUnsignedInt($out, count($this->entities));
100 foreach($this->entities as $entity){
101 $entity->write($out);
102 }
103
104 VarInt::writeUnsignedInt($out, count($this->blocks));
105 foreach($this->blocks as $block){
106 $block->write($out);
107 }
108
109 VarInt::writeUnsignedInt($out, count($this->blockTags));
110 foreach($this->blockTags as $tag){
111 $tag->write($out);
112 }
113
114 VarInt::writeUnsignedInt($out, count($this->entityTypeFamilies));
115 foreach($this->entityTypeFamilies as $family){
116 $family->write($out);
117 }
118
119 CommonTypes::writeOptional($out, $this->defaultEntityPriority, LE::writeSignedInt(...));
120 CommonTypes::writeOptional($out, $this->defaultBlockPriority, LE::writeSignedInt(...));
121 }
122}
__construct(private array $entities, private array $blocks, private array $blockTags, private array $entityTypeFamilies, private ?int $defaultEntityPriority, private ?int $defaultBlockPriority)