Open 3D Engine Multiplayer Gem API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
Multiplayer::ServerToClientReplicationWindow Class Reference

Inherits Multiplayer::IReplicationWindow.

Classes

struct  PrioritizedReplicationCandidate
 

Public Types

using ReplicationCandidateQueue = AZStd::priority_queue< PrioritizedReplicationCandidate >
 

Public Member Functions

 ServerToClientReplicationWindow (NetworkEntityHandle controlledEntity, AzNetworking::IConnection *connection)
 
bool ReplicationSetUpdateReady () override
 
const ReplicationSet & GetReplicationSet () const override
 
uint32_t GetMaxProxyEntityReplicatorSendCount () const override
 
bool IsInWindow (const ConstNetworkEntityHandle &entityPtr, NetEntityRole &outNetworkRole) const override
 
bool AddEntity (AZ::Entity *entity) override
 
void RemoveEntity (AZ::Entity *entity) override
 
void UpdateWindow () override
 This updates the replication set, ensuring all relevant entities are included.
 
AzNetworking::PacketId SendEntityUpdateMessages (NetworkEntityUpdateVector &entityUpdateVector) override
 
void SendEntityRpcs (NetworkEntityRpcVector &entityRpcVector, bool reliable) override
 
void SendEntityResets (const NetEntityIdSet &resetIds) override
 
void DebugDraw () const override
 This causes the replication window to perform debug-draw overlays.
 
virtual bool ReplicationSetUpdateReady ()=0
 
virtual const ReplicationSet & GetReplicationSet () const =0
 
virtual uint32_t GetMaxProxyEntityReplicatorSendCount () const =0
 
virtual bool IsInWindow (const ConstNetworkEntityHandle &entityPtr, NetEntityRole &outNetworkRole) const =0
 
virtual bool AddEntity (AZ::Entity *entity)=0
 
virtual void RemoveEntity (AZ::Entity *entity)=0
 
virtual void UpdateWindow ()=0
 This updates the replication set, ensuring all relevant entities are included.
 
virtual AzNetworking::PacketId SendEntityUpdateMessages (NetworkEntityUpdateVector &entityUpdateVector)=0
 
virtual void SendEntityRpcs (NetworkEntityRpcVector &entityRpcVector, bool reliable)=0
 
virtual void SendEntityResets (const NetEntityIdSet &resetIds)=0
 
virtual void DebugDraw () const =0
 This causes the replication window to perform debug-draw overlays.
 

Member Function Documentation

◆ AddEntity()

bool Multiplayer::ServerToClientReplicationWindow::AddEntity ( AZ::Entity *  entity)
overridevirtual

Adds an entity to the replication window's set

Parameters
entityThe entity to try adding
Returns
Whether the entity was able to be added

Implements Multiplayer::IReplicationWindow.

◆ DebugDraw()

void Multiplayer::ServerToClientReplicationWindow::DebugDraw ( ) const
overridevirtual

This causes the replication window to perform debug-draw overlays.

Implements Multiplayer::IReplicationWindow.

◆ GetMaxProxyEntityReplicatorSendCount()

uint32_t Multiplayer::ServerToClientReplicationWindow::GetMaxProxyEntityReplicatorSendCount ( ) const
overridevirtual

Max number of entities we can send updates for in one frame.

Returns
the max number of entities we can send updates for in one frame

Implements Multiplayer::IReplicationWindow.

◆ GetReplicationSet()

const ReplicationSet & Multiplayer::ServerToClientReplicationWindow::GetReplicationSet ( ) const
overridevirtual

Returns the set of entities, roles, and priorities marked for replication by this replication window.

Returns
const reference to the replication windows replication set

Implements Multiplayer::IReplicationWindow.

◆ IsInWindow()

bool Multiplayer::ServerToClientReplicationWindow::IsInWindow ( const ConstNetworkEntityHandle entityPtr,
NetEntityRole &  outNetworkRole 
) const
overridevirtual

Returns true if the provided network entity is within this replication window.

Parameters
entityPtrthe handle of the entity to test for inclusion
outNetworkRoleoutput containing the network role of the requested entity if found

Implements Multiplayer::IReplicationWindow.

◆ RemoveEntity()

void Multiplayer::ServerToClientReplicationWindow::RemoveEntity ( AZ::Entity *  entity)
overridevirtual

Removes an entity from the replication window's set, if present

Parameters
entityThe entity to remove

Implements Multiplayer::IReplicationWindow.

◆ ReplicationSetUpdateReady()

bool Multiplayer::ServerToClientReplicationWindow::ReplicationSetUpdateReady ( )
overridevirtual

◆ SendEntityResets()

void Multiplayer::ServerToClientReplicationWindow::SendEntityResets ( const NetEntityIdSet &  resetIds)
overridevirtual

This sends an EntityReset message on the associated network interface and connection. This will reset the replicators on the remote endpoint and cause a full refresh of the specified entities

Parameters
resetIdsthe set of netEntityIds to refresh

Implements Multiplayer::IReplicationWindow.

◆ SendEntityRpcs()

void Multiplayer::ServerToClientReplicationWindow::SendEntityRpcs ( NetworkEntityRpcVector &  entityRpcVector,
bool  reliable 
)
overridevirtual

This sends an EntityRpcs message on the associated network interface and connection.

Parameters
entityRpcVectorthe rpc data set to transmit
reliableif a value of true is passed, the rpc message will be sent reliably, unreliably if false

Implements Multiplayer::IReplicationWindow.

◆ SendEntityUpdateMessages()

AzNetworking::PacketId Multiplayer::ServerToClientReplicationWindow::SendEntityUpdateMessages ( NetworkEntityUpdateVector &  entityUpdateVector)
overridevirtual

This sends an EntityUpdate message on the associated network interface and connection.

Parameters
entityUpdateVectorset of entity updates
Returns
the packetId of the sent update message, or InvalidPacketId in the case of failure

Implements Multiplayer::IReplicationWindow.

◆ UpdateWindow()

void Multiplayer::ServerToClientReplicationWindow::UpdateWindow ( )
overridevirtual

This updates the replication set, ensuring all relevant entities are included.

Implements Multiplayer::IReplicationWindow.


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