#pragma once #include #include #include struct World; struct PlayerDialogueRequest; struct TeleportRequest; struct RequestPlayerHealthUpdate; /** * @brief Dispatches UI events that modify the UI view of other cients. */ class OverlayService { public: OverlayService(World& aWorld, entt::dispatcher& aDispatcher); protected: /** * @brief Applies regex on chat message and relays it to other clients. */ void HandleChatMessage(const PacketEvent& acMessage) const noexcept; void HandlePlayerJoin(const PlayerEnterWorldEvent& acEvent) const noexcept; void OnPlayerDialogue(const PacketEvent& acMessage) const noexcept; void OnTeleport(const PacketEvent& acMessage) const noexcept; void OnPlayerHealthUpdate(const PacketEvent& acMessage) const noexcept; private: World& m_world; entt::scoped_connection m_chatMessageConnection; entt::scoped_connection m_playerDialogueConnection; entt::scoped_connection m_teleportConnection; entt::scoped_connection m_playerHealthConnection; };