PocketMine-MP 5.30.2 git-98f04176111e5ecab5e8814ffc69d992bfb64939
Loading...
Searching...
No Matches
CameraSetInstruction.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
20
22
23 public function __construct(
24 private int $preset,
25 private ?CameraSetInstructionEase $ease,
26 private ?Vector3 $cameraPosition,
27 private ?CameraSetInstructionRotation $rotation,
28 private ?Vector3 $facingPosition,
29 private ?Vector2 $viewOffset,
30 private ?Vector3 $entityOffset,
31 private ?bool $default,
32 private bool $ignoreStartingValuesComponent
33 ){}
34
35 public function getPreset() : int{ return $this->preset; }
36
37 public function getEase() : ?CameraSetInstructionEase{ return $this->ease; }
38
39 public function getCameraPosition() : ?Vector3{ return $this->cameraPosition; }
40
41 public function getRotation() : ?CameraSetInstructionRotation{ return $this->rotation; }
42
43 public function getFacingPosition() : ?Vector3{ return $this->facingPosition; }
44
45 public function getViewOffset() : ?Vector2{ return $this->viewOffset; }
46
47 public function getEntityOffset() : ?Vector3{ return $this->entityOffset; }
48
49 public function getDefault() : ?bool{ return $this->default; }
50
51 public function isIgnoringStartingValuesComponent() : bool{ return $this->ignoreStartingValuesComponent; }
52
53 public static function read(PacketSerializer $in) : self{
54 $preset = $in->getLInt();
55 $ease = $in->readOptional(fn() => CameraSetInstructionEase::read($in));
56 $cameraPosition = $in->readOptional($in->getVector3(...));
57 $rotation = $in->readOptional(fn() => CameraSetInstructionRotation::read($in));
58 $facingPosition = $in->readOptional($in->getVector3(...));
59 $viewOffset = $in->readOptional($in->getVector2(...));
60 $entityOffset = $in->readOptional($in->getVector3(...));
61 $default = $in->readOptional($in->getBool(...));
62 $ignoreStartingValuesComponent = $in->getBool();
63
64 return new self(
65 $preset,
66 $ease,
67 $cameraPosition,
68 $rotation,
69 $facingPosition,
70 $viewOffset,
71 $entityOffset,
72 $default,
73 $ignoreStartingValuesComponent
74 );
75 }
76
77 public function write(PacketSerializer $out) : void{
78 $out->putLInt($this->preset);
79 $out->writeOptional($this->ease, fn(CameraSetInstructionEase $v) => $v->write($out));
80 $out->writeOptional($this->cameraPosition, $out->putVector3(...));
81 $out->writeOptional($this->rotation, fn(CameraSetInstructionRotation $v) => $v->write($out));
82 $out->writeOptional($this->facingPosition, $out->putVector3(...));
83 $out->writeOptional($this->viewOffset, $out->putVector2(...));
84 $out->writeOptional($this->entityOffset, $out->putVector3(...));
85 $out->writeOptional($this->default, $out->putBool(...));
86 $out->putBool($this->ignoreStartingValuesComponent);
87 }
88}