VOX
A little voxel engine
Loading...
Searching...
No Matches
PlayerMovePacket Class Reference

#include <PlayerMovePacket.hpp>

Inheritance diagram for PlayerMovePacket:
Inheritance graph
Collaboration diagram for PlayerMovePacket:
Collaboration graph

Public Member Functions

 PlayerMovePacket ()
 
 PlayerMovePacket (uint64_t id, glm::dvec3 position, glm::dvec3 displacement)
 
 ~PlayerMovePacket ()
 
 PlayerMovePacket (const PlayerMovePacket &other)
 
PlayerMovePacketoperator= (const PlayerMovePacket &other)
 
 PlayerMovePacket (PlayerMovePacket &&other)
 
PlayerMovePacketoperator= (PlayerMovePacket &&other)
 
void Serialize (uint8_t *buffer) const override
 will write the packet in the buffer, the buffer must at least be of size Size() More...
 
void Deserialize (const uint8_t *buffer) override
 read the packet from the buffer, the buffer must at least be of size Size() More...
 
uint32_t Size () const override
 return the size of the packet in bytes, usually used to reserve the right amount of memory in the send buffer More...
 
bool HasDynamicSize () const override
 Tell if the packet has a dynamic size. More...
 
IPacket::Type GetType () const override
 Get the Type of the packet. More...
 
std::shared_ptr< IPacketClone () const override
 Create a new instance of the packet. More...
 
uint64_t GetPlayerId () const
 
glm::dvec3 GetPosition () const
 
glm::dvec3 GetDisplacement () const
 
void SetPlayerId (uint64_t id)
 
void SetPosition (glm::dvec3 position)
 
void SetDisplacement (glm::dvec3 displacement)
 
- Public Member Functions inherited from IPacket
virtual ~IPacket ()
 
 IPacket (const IPacket &)
 
IPacketoperator= (const IPacket &)
 
 IPacket (IPacket &&)
 
IPacketoperator= (IPacket &&)
 
virtual void Serialize (uint8_t *buffer) const =0
 will write the packet in the buffer, the buffer must at least be of size Size() More...
 
void ExtractMessage (Connection &connection)
 Extracts the implemented packet from the connection. More...
 
virtual uint32_t Size () const =0
 return the size of the packet in bytes, usually used to reserve the right amount of memory in the send buffer More...
 
virtual bool HasDynamicSize () const =0
 Tell if the packet has a dynamic size. More...
 
virtual enum Type GetType () const =0
 Get the Type of the packet. More...
 
virtual std::shared_ptr< IPacketClone () const =0
 Create a new instance of the packet. More...
 
uint64_t GetConnectionId () const
 Get the Connection Id ( eg source of the packet or destination if it's a response) More...
 
void SetConnectionId (uint64_t connection_id)
 Set the Connection Id ( eg source of the packet or destination if it's a response) More...
 

Additional Inherited Members

- Public Types inherited from IPacket
enum class  Type : uint32_t {
  CONNECTION , PLAYER_CONNECTED , PLAYER_MOVE , DISCONNECT ,
  BLOCK_ACTION , PING , PLAYER_LIST , CHUNK ,
  CHUNK_REQUEST , CHUNK_UNLOAD , LOAD_DISTANCE , ENUM_MAX ,
  ENUM_MIN = 0
}
 
- Static Public Attributes inherited from IPacket
static const uint32_t STATIC_HEADER_SIZE = sizeof(Type)
 
static const uint32_t DYNAMIC_HEADER_SIZE = sizeof(Type) + sizeof(size_t)
 
- Protected Member Functions inherited from IPacket
virtual void Deserialize (const uint8_t *buffer)=0
 read the packet from the buffer, the buffer must at least be of size Size() More...
 
size_t SerializeHeader (uint8_t *buffer) const
 util function to serialize the header of the packet will serialize the type and the size of the packet if it has a dynamic size More...
 
 IPacket ()
 
- Protected Attributes inherited from IPacket
uint64_t m_connection_id = 0
 

Constructor & Destructor Documentation

◆ PlayerMovePacket() [1/4]

PlayerMovePacket::PlayerMovePacket ( )

◆ PlayerMovePacket() [2/4]

PlayerMovePacket::PlayerMovePacket ( uint64_t  id,
glm::dvec3  position,
glm::dvec3  displacement 
)

◆ ~PlayerMovePacket()

PlayerMovePacket::~PlayerMovePacket ( )

◆ PlayerMovePacket() [3/4]

PlayerMovePacket::PlayerMovePacket ( const PlayerMovePacket other)

◆ PlayerMovePacket() [4/4]

PlayerMovePacket::PlayerMovePacket ( PlayerMovePacket &&  other)

Member Function Documentation

◆ Clone()

std::shared_ptr< IPacket > PlayerMovePacket::Clone ( ) const
overridevirtual

Create a new instance of the packet.

Returns
std::shared_ptr<IPacket>

Implements IPacket.

◆ Deserialize()

void PlayerMovePacket::Deserialize ( const uint8_t *  buffer)
overridevirtual

read the packet from the buffer, the buffer must at least be of size Size()

Note
this is protected because the method the user should call is ExtractMessage
Parameters
buffer

Implements IPacket.

◆ GetDisplacement()

glm::dvec3 PlayerMovePacket::GetDisplacement ( ) const

◆ GetPlayerId()

uint64_t PlayerMovePacket::GetPlayerId ( ) const

◆ GetPosition()

glm::dvec3 PlayerMovePacket::GetPosition ( ) const

◆ GetType()

IPacket::Type PlayerMovePacket::GetType ( ) const
overridevirtual

Get the Type of the packet.

Returns
enum Type

Implements IPacket.

◆ HasDynamicSize()

bool PlayerMovePacket::HasDynamicSize ( ) const
overridevirtual

Tell if the packet has a dynamic size.

Returns
true
false

Implements IPacket.

◆ operator=() [1/2]

PlayerMovePacket & PlayerMovePacket::operator= ( const PlayerMovePacket other)

◆ operator=() [2/2]

PlayerMovePacket & PlayerMovePacket::operator= ( PlayerMovePacket &&  other)

◆ Serialize()

void PlayerMovePacket::Serialize ( uint8_t *  buffer) const
overridevirtual

will write the packet in the buffer, the buffer must at least be of size Size()

Parameters
buffer

Implements IPacket.

◆ SetDisplacement()

void PlayerMovePacket::SetDisplacement ( glm::dvec3  displacement)

◆ SetPlayerId()

void PlayerMovePacket::SetPlayerId ( uint64_t  id)

◆ SetPosition()

void PlayerMovePacket::SetPosition ( glm::dvec3  position)

◆ Size()

uint32_t PlayerMovePacket::Size ( ) const
overridevirtual

return the size of the packet in bytes, usually used to reserve the right amount of memory in the send buffer

or to check if a connection contains a complete packet

Warning
if the packet has a dynamic size YOU CANNOT call this method to check if the packet is complete, you MUST read the size from the packet header.

However you can still use it on an instance of a packet that has some data in it to estimate the size of the packet

Returns
uint32_t

Implements IPacket.


The documentation for this class was generated from the following files: