#pragma once #include struct World; struct UpdateEvent; struct TransportService; struct RequestActorValueChanges; struct RequestActorMaxValueChanges; struct RequestHealthChangeBroadcast; struct RequestDeathStateChange; /** * @brief Broadcasts changes in (max) actor values and updates them server side. */ struct ActorValueService { ActorValueService(World& aWorld, entt::dispatcher& aDispatcher) noexcept; ~ActorValueService() noexcept = default; TP_NOCOPYMOVE(ActorValueService); private: World& m_world; void OnActorValueChanges(const PacketEvent& acMessage) const noexcept; void OnActorMaxValueChanges(const PacketEvent& acMessage) const noexcept; void OnHealthChangeBroadcast(const PacketEvent& acMessage) const noexcept; void OnDeathStateChange(const PacketEvent& acMessage) const noexcept; entt::scoped_connection m_updateHealthConnection; entt::scoped_connection m_updateMaxValueConnection; entt::scoped_connection m_updateDeltaHealthConnection; entt::scoped_connection m_deathStateConnection; };