mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-01 01:53:47 +00:00
feat(Core/WorldObjects): implement Heartbeat timers (#20872)
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
|
||||
#include "Common.h"
|
||||
#include "DataMap.h"
|
||||
#include "EventProcessor.h"
|
||||
#include "G3D/Vector3.h"
|
||||
#include "GridDefines.h"
|
||||
#include "GridReference.h"
|
||||
@@ -96,6 +97,8 @@ struct PositionFullTerrainStatus;
|
||||
typedef std::unordered_map<Player*, UpdateData> UpdateDataMapType;
|
||||
typedef GuidUnorderedSet UpdatePlayerSet;
|
||||
|
||||
static constexpr Milliseconds HEARTBEAT_INTERVAL = 5s + 200ms;
|
||||
|
||||
class Object
|
||||
{
|
||||
public:
|
||||
@@ -220,6 +223,8 @@ public:
|
||||
|
||||
[[nodiscard]] inline bool IsItem() const { return GetTypeId() == TYPEID_ITEM; }
|
||||
|
||||
virtual void Heartbeat() {}
|
||||
|
||||
virtual std::string GetDebugInfo() const;
|
||||
|
||||
DataMap CustomData;
|
||||
@@ -408,7 +413,7 @@ protected:
|
||||
public:
|
||||
~WorldObject() override;
|
||||
|
||||
virtual void Update(uint32 /*time_diff*/);
|
||||
virtual void Update(uint32 diff);
|
||||
|
||||
void _Create(ObjectGuid::LowType guidlow, HighGuid guidhigh, uint32 phaseMask);
|
||||
|
||||
@@ -632,7 +637,9 @@ public:
|
||||
|
||||
std::string GetDebugInfo() const override;
|
||||
|
||||
// Event handler
|
||||
ElunaEventProcessor* elunaEvents;
|
||||
EventProcessor m_Events;
|
||||
|
||||
protected:
|
||||
std::string m_name;
|
||||
@@ -666,7 +673,7 @@ protected:
|
||||
virtual bool IsAlwaysDetectableFor(WorldObject const* /*seer*/) const { return false; }
|
||||
private:
|
||||
Map* m_currMap; //current object's Map location
|
||||
|
||||
Milliseconds _heartbeatTimer;
|
||||
//uint32 m_mapId; // object at map with map_id
|
||||
uint32 m_InstanceId; // in map copy with instance id
|
||||
uint32 m_phaseMask; // in area phase state
|
||||
|
||||
Reference in New Issue
Block a user