Botcraft 26.3
Loading...
Searching...
No Matches
Botcraft::EntityManager Class Reference

#include <EntityManager.hpp>

Inheritance diagram for Botcraft::EntityManager:
ProtocolCraft::Handler ProtocolCraft::GenericHandler< Packet, AllPackets >

Public Member Functions

 EntityManager (const std::shared_ptr< NetworkManager > &network_manager)
 
std::shared_ptr< LocalPlayer > GetLocalPlayer ()
 
std::shared_ptr< Entity > GetEntity (const int id) const
 
void AddEntity (const std::shared_ptr< Entity > &entity)
 
Utilities::ScopeLockedWrapper< const std::unordered_map< int, std::shared_ptr< Entity > >, std::shared_mutex, std::shared_lock > GetEntities () const
 Get a read-only locked version of all the loaded entities (including local player)
 

Protected Member Functions

virtual void Handle (ProtocolCraft::ClientboundLoginPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundAddEntityPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundExplodePacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundSetHealthPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundTeleportEntityPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundPlayerAbilitiesPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundMoveEntityPacketPos &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundMoveEntityPacketPosRot &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundMoveEntityPacketRot &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundRemoveEntitiesPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundRespawnPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundGameEventPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundSetEntityDataPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundSetEntityMotionPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundSetEquipmentPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundUpdateAttributesPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundUpdateMobEffectPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundRemoveMobEffectPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundEntityPositionSyncPacket &packet) override
 
virtual void Handle (ProtocolCraft::ClientboundMoveMinecartPacket &packet) override
 

Private Attributes

std::unordered_map< int, std::shared_ptr< Entity > > entities
 
std::shared_ptr< LocalPlayer > local_player
 
std::shared_mutex entity_manager_mutex
 
std::shared_ptr< NetworkManager > network_manager
 

Detailed Description

Definition at line 17 of file EntityManager.hpp.

Constructor & Destructor Documentation

◆ EntityManager()

Botcraft::EntityManager::EntityManager ( const std::shared_ptr< NetworkManager > &  network_manager)

Definition at line 15 of file EntityManager.cpp.

References local_player.

Member Function Documentation

◆ AddEntity()

void Botcraft::EntityManager::AddEntity ( const std::shared_ptr< Entity > &  entity)

Definition at line 32 of file EntityManager.cpp.

References entities, and entity_manager_mutex.

◆ GetEntities()

Utilities::ScopeLockedWrapper< const std::unordered_map< int, std::shared_ptr< Entity > >, std::shared_mutex, std::shared_lock > Botcraft::EntityManager::GetEntities ( ) const

Get a read-only locked version of all the loaded entities (including local player)

Returns
Basically an object you can use as a std::unordered_map<int, std::shared_ptr<Entity>>*. ALL ENTITIES UPDATE WILL BE BLOCKED WHILE THIS OBJECT IS ALIVE, make sure it goes out of scope as soon as you don't need it.

Definition at line 43 of file EntityManager.cpp.

References entities, and entity_manager_mutex.

◆ GetEntity()

std::shared_ptr< Entity > Botcraft::EntityManager::GetEntity ( const int  id) const

Definition at line 25 of file EntityManager.cpp.

References entities, and entity_manager_mutex.

◆ GetLocalPlayer()

std::shared_ptr< LocalPlayer > Botcraft::EntityManager::GetLocalPlayer ( )

Definition at line 20 of file EntityManager.cpp.

References local_player.

◆ Handle() [1/20]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundAddEntityPacket &  packet)
overrideprotectedvirtual

◆ Handle() [2/20]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundEntityPositionSyncPacket &  packet)
overrideprotectedvirtual

Definition at line 621 of file EntityManager.cpp.

References entities, entity_manager_mutex, and local_player.

◆ Handle() [3/20]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundExplodePacket &  packet)
overrideprotectedvirtual

Definition at line 245 of file EntityManager.cpp.

References local_player, and LOG_WARNING.

◆ Handle() [4/20]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundGameEventPacket &  packet)
overrideprotectedvirtual

Definition at line 426 of file EntityManager.cpp.

References local_player.

◆ Handle() [5/20]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundLoginPacket &  packet)
overrideprotectedvirtual

Definition at line 49 of file EntityManager.cpp.

References entities, entity_manager_mutex, and local_player.

◆ Handle() [6/20]

◆ Handle() [7/20]

◆ Handle() [8/20]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundMoveEntityPacketRot &  packet)
overrideprotectedvirtual

Definition at line 198 of file EntityManager.cpp.

References entities, and entity_manager_mutex.

◆ Handle() [9/20]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundMoveMinecartPacket &  packet)
overrideprotectedvirtual

Definition at line 664 of file EntityManager.cpp.

References entities, and entity_manager_mutex.

◆ Handle() [10/20]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundPlayerAbilitiesPacket &  packet)
overrideprotectedvirtual

Definition at line 393 of file EntityManager.cpp.

References local_player.

◆ Handle() [11/20]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundRemoveEntitiesPacket &  packet)
overrideprotectedvirtual

Definition at line 407 of file EntityManager.cpp.

References entities, and entity_manager_mutex.

◆ Handle() [12/20]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundRemoveMobEffectPacket &  packet)
overrideprotectedvirtual

Definition at line 596 of file EntityManager.cpp.

References entities, entity_manager_mutex, and LOG_WARNING.

◆ Handle() [13/20]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundRespawnPacket &  packet)
overrideprotectedvirtual

Definition at line 417 of file EntityManager.cpp.

References local_player.

◆ Handle() [14/20]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundSetEntityDataPacket &  packet)
overrideprotectedvirtual

Definition at line 438 of file EntityManager.cpp.

References entities, entity_manager_mutex, and LOG_WARNING.

◆ Handle() [15/20]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundSetEntityMotionPacket &  packet)
overrideprotectedvirtual

Definition at line 461 of file EntityManager.cpp.

References entities, entity_manager_mutex, and LOG_WARNING.

◆ Handle() [16/20]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundSetEquipmentPacket &  packet)
overrideprotectedvirtual

Definition at line 489 of file EntityManager.cpp.

References entities, entity_manager_mutex, and LOG_WARNING.

◆ Handle() [17/20]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundSetHealthPacket &  packet)
overrideprotectedvirtual

Definition at line 350 of file EntityManager.cpp.

References local_player.

◆ Handle() [18/20]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundTeleportEntityPacket &  packet)
overrideprotectedvirtual

Definition at line 357 of file EntityManager.cpp.

References entities, and entity_manager_mutex.

◆ Handle() [19/20]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundUpdateAttributesPacket &  packet)
overrideprotectedvirtual

◆ Handle() [20/20]

void Botcraft::EntityManager::Handle ( ProtocolCraft::ClientboundUpdateMobEffectPacket &  packet)
overrideprotectedvirtual

Definition at line 569 of file EntityManager.cpp.

References entities, entity_manager_mutex, and LOG_WARNING.

Member Data Documentation

◆ entities

std::unordered_map<int, std::shared_ptr<Entity> > Botcraft::EntityManager::entities
private

◆ entity_manager_mutex

std::shared_mutex Botcraft::EntityManager::entity_manager_mutex
mutableprivate

◆ local_player

std::shared_ptr<LocalPlayer> Botcraft::EntityManager::local_player
private

◆ network_manager

std::shared_ptr<NetworkManager> Botcraft::EntityManager::network_manager
private

Definition at line 84 of file EntityManager.hpp.


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