27 public const AUDIO_LISTENER_TYPE_CAMERA = 0;
28 public const AUDIO_LISTENER_TYPE_PLAYER = 1;
30 public function __construct(
32 private string $parent,
33 private ?
float $xPosition,
34 private ?
float $yPosition,
35 private ?
float $zPosition,
36 private ?
float $pitch,
38 private ?
float $rotationSpeed,
39 private ?
bool $snapToTarget,
40 private ?
Vector2 $horizontalRotationLimit,
41 private ?
Vector2 $verticalRotationLimit,
42 private ?
bool $continueTargeting,
43 private ?
float $blockListeningRadius,
46 private ?
float $radius,
47 private ?
float $yawLimitMin,
48 private ?
float $yawLimitMax,
49 private ?
int $audioListenerType,
50 private ?
bool $playerEffects,
52 private ?ControlScheme $controlScheme,
55 public function getName() :
string{
return $this->name; }
57 public function getParent() :
string{
return $this->parent; }
59 public function getXPosition() : ?
float{
return $this->xPosition; }
61 public function getYPosition() : ?
float{
return $this->yPosition; }
63 public function getZPosition() : ?
float{
return $this->zPosition; }
65 public function getPitch() : ?
float{
return $this->pitch; }
67 public function getYaw() : ?
float{
return $this->yaw; }
69 public function getRotationSpeed() : ?
float {
return $this->rotationSpeed; }
71 public function getSnapToTarget() : ?
bool {
return $this->snapToTarget; }
73 public function getHorizontalRotationLimit() : ?
Vector2{
return $this->horizontalRotationLimit; }
75 public function getVerticalRotationLimit() : ?
Vector2{
return $this->verticalRotationLimit; }
77 public function getContinueTargeting() : ?
bool{
return $this->continueTargeting; }
79 public function getBlockListeningRadius() : ?
float{
return $this->blockListeningRadius; }
81 public function getViewOffset() : ?
Vector2{
return $this->viewOffset; }
83 public function getEntityOffset() : ?
Vector3{
return $this->entityOffset; }
85 public function getRadius() : ?
float{
return $this->radius; }
87 public function getYawLimitMin() : ?
float{
return $this->yawLimitMin; }
89 public function getYawLimitMax() : ?
float{
return $this->yawLimitMax; }
91 public function getAudioListenerType() : ?
int{
return $this->audioListenerType; }
93 public function getPlayerEffects() : ?
bool{
return $this->playerEffects; }
97 public function getControlScheme() : ?ControlScheme{
return $this->controlScheme; }
99 public static function read(ByteBufferReader $in) :
self{
100 $name = CommonTypes::getString($in);
101 $parent = CommonTypes::getString($in);
102 $xPosition = CommonTypes::readOptional($in, LE::readFloat(...));
103 $yPosition = CommonTypes::readOptional($in, LE::readFloat(...));
104 $zPosition = CommonTypes::readOptional($in, LE::readFloat(...));
105 $pitch = CommonTypes::readOptional($in, LE::readFloat(...));
106 $yaw = CommonTypes::readOptional($in, LE::readFloat(...));
107 $rotationSpeed = CommonTypes::readOptional($in, LE::readFloat(...));
108 $snapToTarget = CommonTypes::readOptional($in, CommonTypes::getBool(...));
109 $horizontalRotationLimit = CommonTypes::readOptional($in, CommonTypes::getVector2(...));
110 $verticalRotationLimit = CommonTypes::readOptional($in, CommonTypes::getVector2(...));
111 $continueTargeting = CommonTypes::readOptional($in, CommonTypes::getBool(...));
112 $blockListeningRadius = CommonTypes::readOptional($in, LE::readFloat(...));
113 $viewOffset = CommonTypes::readOptional($in, CommonTypes::getVector2(...));
114 $entityOffset = CommonTypes::readOptional($in, CommonTypes::getVector3(...));
115 $radius = CommonTypes::readOptional($in, LE::readFloat(...));
116 $yawLimitMin = CommonTypes::readOptional($in, LE::readFloat(...));
117 $yawLimitMax = CommonTypes::readOptional($in, LE::readFloat(...));
118 $audioListenerType = CommonTypes::readOptional($in, Byte::readUnsigned(...));
119 $playerEffects = CommonTypes::readOptional($in, CommonTypes::getBool(...));
120 $aimAssist = CommonTypes::readOptional($in, fn() => CameraPresetAimAssist::read($in));
121 $controlScheme = CommonTypes::readOptional($in, fn() => ControlScheme::fromPacket(Byte::readUnsigned($in)));
133 $horizontalRotationLimit,
134 $verticalRotationLimit,
136 $blockListeningRadius,
149 public function write(ByteBufferWriter $out) :
void{
150 CommonTypes::putString($out, $this->name);
151 CommonTypes::putString($out, $this->parent);
152 CommonTypes::writeOptional($out, $this->xPosition, LE::writeFloat(...));
153 CommonTypes::writeOptional($out, $this->yPosition, LE::writeFloat(...));
154 CommonTypes::writeOptional($out, $this->zPosition, LE::writeFloat(...));
155 CommonTypes::writeOptional($out, $this->pitch, LE::writeFloat(...));
156 CommonTypes::writeOptional($out, $this->yaw, LE::writeFloat(...));
157 CommonTypes::writeOptional($out, $this->rotationSpeed, LE::writeFloat(...));
158 CommonTypes::writeOptional($out, $this->snapToTarget, CommonTypes::putBool(...));
159 CommonTypes::writeOptional($out, $this->horizontalRotationLimit, CommonTypes::putVector2(...));
160 CommonTypes::writeOptional($out, $this->verticalRotationLimit, CommonTypes::putVector2(...));
161 CommonTypes::writeOptional($out, $this->continueTargeting, CommonTypes::putBool(...));
162 CommonTypes::writeOptional($out, $this->blockListeningRadius, LE::writeFloat(...));
163 CommonTypes::writeOptional($out, $this->viewOffset, CommonTypes::putVector2(...));
164 CommonTypes::writeOptional($out, $this->entityOffset, CommonTypes::putVector3(...));
165 CommonTypes::writeOptional($out, $this->radius, LE::writeFloat(...));
166 CommonTypes::writeOptional($out, $this->yawLimitMin, LE::writeFloat(...));
167 CommonTypes::writeOptional($out, $this->yawLimitMax, LE::writeFloat(...));
168 CommonTypes::writeOptional($out, $this->audioListenerType, Byte::writeUnsigned(...));
169 CommonTypes::writeOptional($out, $this->playerEffects, CommonTypes::putBool(...));
170 CommonTypes::writeOptional($out, $this->aimAssist, fn(ByteBufferWriter $out,
CameraPresetAimAssist $v) => $v->write($out));
171 CommonTypes::writeOptional($out, $this->controlScheme, fn(ByteBufferWriter $out, ControlScheme $v) => Byte::writeUnsigned($out, $v->value));