PocketMine-MP 5.35.1 git-e32e836dad793a3a3c8ddd8927c00e112b1e576a
Loading...
Searching...
No Matches
CameraPresetAimAssist.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\Byte;
18use pmmp\encoding\ByteBufferReader;
19use pmmp\encoding\ByteBufferWriter;
20use pmmp\encoding\LE;
23
25
26 public function __construct(
27 private ?string $presetId,
28 private ?CameraAimAssistTargetMode $targetMode,
29 private ?Vector2 $viewAngle,
30 private ?float $distance,
31 ){}
32
33 public function getPresetId() : ?string{ return $this->presetId; }
34
35 public function getTargetMode() : ?CameraAimAssistTargetMode{ return $this->targetMode; }
36
37 public function getViewAngle() : ?Vector2{ return $this->viewAngle; }
38
39 public function getDistance() : ?float{ return $this->distance; }
40
41 public static function read(ByteBufferReader $in) : self{
42 $presetId = CommonTypes::readOptional($in, CommonTypes::getString(...));
43 $targetMode = CommonTypes::readOptional($in, fn() => CameraAimAssistTargetMode::fromPacket(Byte::readUnsigned($in)));
44 $viewAngle = CommonTypes::readOptional($in, CommonTypes::getVector2(...));
45 $distance = CommonTypes::readOptional($in, LE::readFloat(...));
46
47 return new self(
48 $presetId,
49 $targetMode,
50 $viewAngle,
51 $distance
52 );
53 }
54
55 public function write(ByteBufferWriter $out) : void{
56 CommonTypes::writeOptional($out, $this->presetId, CommonTypes::putString(...));
57 CommonTypes::writeOptional($out, $this->targetMode, fn(ByteBufferWriter $out, CameraAimAssistTargetMode $v) => Byte::writeUnsigned($out, $v->value));
58 CommonTypes::writeOptional($out, $this->viewAngle, CommonTypes::putVector2(...));
59 CommonTypes::writeOptional($out, $this->distance, LE::writeFloat(...));
60 }
61}