mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-12 04:45:12 +00:00
this is not a complete changeset, but it's sufficient to get servers back online. There are additional changes to PlayerAuthInputPacket which need to be reversed.
83 lines
2.3 KiB
PHP
83 lines
2.3 KiB
PHP
<?php
|
|
|
|
/*
|
|
*
|
|
* ____ _ _ __ __ _ __ __ ____
|
|
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
|
|
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
|
|
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
|
|
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* @author PocketMine Team
|
|
* @link http://www.pocketmine.net/
|
|
*
|
|
*
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace pocketmine\network\mcpe\protocol;
|
|
|
|
#include <rules/DataPacket.h>
|
|
|
|
use pocketmine\network\mcpe\NetworkSession;
|
|
|
|
class CameraShakePacket extends DataPacket/* implements ClientboundPacket*/{
|
|
public const NETWORK_ID = ProtocolInfo::CAMERA_SHAKE_PACKET;
|
|
|
|
public const TYPE_POSITIONAL = 0;
|
|
public const TYPE_ROTATIONAL = 1;
|
|
|
|
public const ACTION_ADD = 0;
|
|
public const ACTION_STOP = 1;
|
|
|
|
/** @var float */
|
|
private $intensity;
|
|
/** @var float */
|
|
private $duration;
|
|
/** @var int */
|
|
private $shakeType;
|
|
/** @var int */
|
|
private $shakeAction;
|
|
|
|
public static function create(float $intensity, float $duration, int $shakeType, int $shakeAction) : self{
|
|
$result = new self;
|
|
$result->intensity = $intensity;
|
|
$result->duration = $duration;
|
|
$result->shakeType = $shakeType;
|
|
$result->shakeAction = $shakeAction;
|
|
return $result;
|
|
}
|
|
|
|
public function getIntensity() : float{ return $this->intensity; }
|
|
|
|
public function getDuration() : float{ return $this->duration; }
|
|
|
|
public function getShakeType() : int{ return $this->shakeType; }
|
|
|
|
public function getShakeAction() : int{ return $this->shakeAction; }
|
|
|
|
protected function decodePayload() : void{
|
|
$this->intensity = $this->getLFloat();
|
|
$this->duration = $this->getLFloat();
|
|
$this->shakeType = $this->getByte();
|
|
$this->shakeAction = $this->getByte();
|
|
}
|
|
|
|
protected function encodePayload() : void{
|
|
$this->putLFloat($this->intensity);
|
|
$this->putLFloat($this->duration);
|
|
$this->putByte($this->shakeType);
|
|
$this->putByte($this->shakeAction);
|
|
}
|
|
|
|
public function handle(NetworkSession $handler) : bool{
|
|
return $handler->handleCameraShake($this);
|
|
}
|
|
}
|