18#ifndef TRINITY_NGRID_H
19#define TRINITY_NGRID_H
29#define DEFAULT_VISIBILITY_NOTIFY_PERIOD 1000
35 GridInfo(time_t expiry,
bool unload =
true);
37 bool getUnloadLock()
const {
return i_unloadActiveLockCount || i_unloadExplicitLock; }
66class WORLD_OBJECT_CONTAINER,
67class GRID_OBJECT_CONTAINER
135 template<
class VISITOR>
138 for (
uint32 x = 0; x < N; ++x)
139 for (
uint32 y = 0; y < N; ++y)
143 template<
class VISITOR>
146 for (
uint32 x = 0; x < N; ++x)
147 for (
uint32 y = 0; y < N; ++y)
152 template<
class VISITOR>
158 template<
class VISITOR>
168 for (
uint32 x = 0; x < N; ++x)
169 for (
uint32 y = 0; y < N; ++y)
170 count +=
i_cells[x][y].
template GetWorldObjectCountInGrid<T>();
178 for (
uint32 x = 0; x < N; ++x)
179 for (
uint32 y = 0; y < N; ++y)
180 count +=
i_cells[x][y].
template GetGridObjectCountInGrid<T>();
187 for (
uint32 x = 0; x < N; ++x)
188 for (
uint32 y = 0; y < N; ++y)
189 if (
i_cells[x][y].
template GetWorldObjectCountInGrid<T>() != 0)
197 for (
uint32 x = 0; x < N; ++x)
198 for (
uint32 y = 0; y < N; ++y)
199 if (
i_cells[x][y].
template GetGridObjectCountInGrid<T>() != 0)
bool i_unloadExplicitLock
void decUnloadActiveLock()
TimeTracker const & getTimeTracker() const
PeriodicTimer & getRelocationTimer()
uint16 i_unloadActiveLockCount
void setTimer(TimeTracker const &pTimer)
void setUnloadExplicitLock(bool on)
bool getUnloadLock() const
void ResetTimeTracker(time_t interval)
void UpdateTimeTracker(time_t diff)
void incUnloadActiveLock()
void Visit(TypeContainerVisitor< T, GRID_OBJECT_CONTAINER > &visitor)
void VisitGrid(uint32 x, uint32 y, TypeContainerVisitor< VISITOR, WORLD_OBJECT_CONTAINER > &visitor)
void ResetTimeTracker(time_t interval)
void decUnloadActiveLock()
void setUnloadExplicitLock(bool on)
void SetGridState(grid_state_t s)
GridType const & GetGridType(const uint32 x, const uint32 y) const
void UpdateTimeTracker(time_t diff)
TimeTracker const & getTimeTracker() const
grid_state_t GetGridState(void) const
void VisitAllGrids(TypeContainerVisitor< VISITOR, WORLD_OBJECT_CONTAINER > &visitor)
bool i_GridObjectDataLoaded
GridType & GetGridType(const uint32 x, const uint32 y)
Grid< WORLD_OBJECT_CONTAINER, GRID_OBJECT_CONTAINER > GridType
void VisitAllGrids(TypeContainerVisitor< VISITOR, GRID_OBJECT_CONTAINER > &visitor)
bool HasWorldObjectsInNGrid() const
bool HasGridObjectsInNGrid() const
void setGridObjectDataLoaded(bool pLoaded)
bool isGridObjectDataLoaded() const
uint32 GetGridId(void) const
std::size_t GetWorldObjectCountInNGrid() const
std::size_t GetGridObjectCountInNGrid() const
bool getUnloadLock() const
void link(GridRefManager< NGrid > *pTo)
GridInfo * getGridInfoRef()
NGrid(uint32 id, int32 x, int32 y, time_t expiry, bool unload=true)
GridReference< NGrid > i_Reference
void VisitGrid(uint32 x, uint32 y, TypeContainerVisitor< VISITOR, GRID_OBJECT_CONTAINER > &visitor)
void incUnloadActiveLock()
void link(TO *toObj, FROM *fromObj)