mirror of
https://github.com/Jous99/F4MP.git
synced 2026-01-13 00:40:53 +01:00
37 lines
1.3 KiB
C++
37 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include <Events/PacketEvent.h>
|
|
|
|
struct World;
|
|
struct ShiftGridCellRequest;
|
|
struct EnterInteriorCellRequest;
|
|
struct EnterExteriorCellRequest;
|
|
struct PlayerRespawnRequest;
|
|
struct PlayerLevelRequest;
|
|
|
|
/**
|
|
* @brief Handles player specific actions that might change the information needed by other clients about that player.
|
|
*/
|
|
struct PlayerService
|
|
{
|
|
PlayerService(World& aWorld, entt::dispatcher& aDispatcher) noexcept;
|
|
~PlayerService() noexcept = default;
|
|
|
|
TP_NOCOPYMOVE(PlayerService);
|
|
|
|
protected:
|
|
void HandleGridCellShift(const PacketEvent<ShiftGridCellRequest>& acMessage) const noexcept;
|
|
void HandleExteriorCellEnter(const PacketEvent<EnterExteriorCellRequest>& acMessage) const noexcept;
|
|
void HandleInteriorCellEnter(const PacketEvent<EnterInteriorCellRequest>& acMessage) const noexcept;
|
|
void OnPlayerRespawnRequest(const PacketEvent<PlayerRespawnRequest>& acMessage) const noexcept;
|
|
void OnPlayerLevelRequest(const PacketEvent<PlayerLevelRequest>& acMessage) const noexcept;
|
|
|
|
private:
|
|
World& m_world;
|
|
|
|
entt::scoped_connection m_gridCellShiftConnection;
|
|
entt::scoped_connection m_exteriorCellEnterConnection;
|
|
entt::scoped_connection m_interiorCellEnterConnection;
|
|
entt::scoped_connection m_playerRespawnConnection;
|
|
entt::scoped_connection m_playerLevelConnection;
|
|
};
|