Cuberite
A lightweight, fast and extensible game server for Minecraft
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
cChunkMap Class Reference

#include <ChunkMap.h>

Collaboration diagram for cChunkMap:
Collaboration graph
[legend]

Classes

struct  ChunkCoordinate
 
class  cStarvationCallbacks
 

Public Member Functions

bool AddChunkClient (int a_ChunkX, int a_ChunkZ, cClientHandle *a_Client)
 Adds client to a chunk, if not already present; returns true if added, false if present. More...
 
void AddEntity (OwnedEntity a_Entity)
 Adds the entity to its appropriate chunk, takes ownership of the entity pointer. More...
 
void AddEntityIfNotPresent (OwnedEntity a_Entity)
 Adds the entity to its appropriate chunk, if the entity is not already added. More...
 
 cChunkMap (cWorld *a_World)
 
void ChunkLighted (int a_ChunkX, int a_ChunkZ, const cChunkDef::BlockNibbles &a_BlockLight, const cChunkDef::BlockNibbles &a_SkyLight)
 
void ChunkLoadFailed (int a_ChunkX, int a_ChunkZ)
 Marks the chunk as failed-to-load. More...
 
void ChunkValidated (void)
 
void CollectMobCensus (cMobCensus &a_ToFill)
 Make a Mob census, of all mobs, their family, their chunk and their distance to closest player. More...
 
void CollectPickupsByPlayer (cPlayer &a_Player)
 Makes the specified player collect all the pickups around them. More...
 
void CompareChunkClients (int a_ChunkX1, int a_ChunkZ1, int a_ChunkX2, int a_ChunkZ2, cClientDiffCallback &a_Callback)
 Compares clients of two chunks, calls the callback accordingly. More...
 
void CompareChunkClients (cChunk *a_Chunk1, cChunk *a_Chunk2, cClientDiffCallback &a_Callback)
 Compares clients of two chunks, calls the callback accordingly. More...
 
bool DigBlock (Vector3i a_BlockPos)
 Removes the block at the specified coords and wakes up simulators. More...
 
void DoExplosionAt (double a_ExplosionSize, double a_BlockX, double a_BlockY, double a_BlockZ, cVector3iArray &a_BlockAffected)
 Destroys and returns a list of blocks destroyed in the explosion at the specified coordinates. More...
 
bool DoWithBeaconAt (int a_BlockX, int a_BlockY, int a_BlockZ, cBeaconCallback a_Callback)
 Calls the callback for the beacon at the specified coords. More...
 
bool DoWithBedAt (int a_BlockX, int a_BlockY, int a_BlockZ, cBedCallback a_Callback)
 Calls the callback for the bed at the specified coords. More...
 
bool DoWithBlockEntityAt (int a_BlockX, int a_BlockY, int a_BlockZ, cBlockEntityCallback a_Callback)
 Calls the callback for the block entity at the specified coords. More...
 
bool DoWithBrewingstandAt (int a_BlockX, int a_BlockY, int a_BlockZ, cBrewingstandCallback a_Callback)
 Calls the callback for the brewingstand at the specified coords; returns false if there's no brewingstand at those coords, true if found. More...
 
bool DoWithChestAt (int a_BlockX, int a_BlockY, int a_BlockZ, cChestCallback a_Callback)
 Calls the callback for the chest at the specified coords. More...
 
bool DoWithChunk (int a_ChunkX, int a_ChunkZ, cChunkCallback a_Callback)
 Calls the callback for the chunk specified, with ChunkMapCS locked; returns false if the chunk doesn't exist, otherwise returns the same value as the callback. More...
 
bool DoWithChunkAt (Vector3i a_BlockPos, cChunkCallback a_Callback)
 Calls the callback for the chunk at the block position specified, with ChunkMapCS locked; returns false if the chunk doesn't exist, otherwise returns the same value as the callback. More...
 
bool DoWithCommandBlockAt (int a_BlockX, int a_BlockY, int a_BlockZ, cCommandBlockCallback a_Callback)
 Calls the callback for the command block at the specified coords. More...
 
bool DoWithDispenserAt (int a_BlockX, int a_BlockY, int a_BlockZ, cDispenserCallback a_Callback)
 Calls the callback for the dispenser at the specified coords. More...
 
bool DoWithDropperAt (int a_BlockX, int a_BlockY, int a_BlockZ, cDropperCallback a_Callback)
 Calls the callback for the dropper at the specified coords. More...
 
bool DoWithDropSpenserAt (int a_BlockX, int a_BlockY, int a_BlockZ, cDropSpenserCallback a_Callback)
 Calls the callback for the dropspenser at the specified coords. More...
 
bool DoWithEntityByID (UInt32 a_EntityID, cEntityCallback a_Callback)
 Calls the callback if the entity with the specified ID is found, with the entity object as the callback param. More...
 
bool DoWithFlowerPotAt (int a_BlockX, int a_BlockY, int a_BlockZ, cFlowerPotCallback a_Callback)
 Calls the callback for the flower pot at the specified coords. More...
 
bool DoWithFurnaceAt (int a_BlockX, int a_BlockY, int a_BlockZ, cFurnaceCallback a_Callback)
 Calls the callback for the furnace at the specified coords. More...
 
bool DoWithMobHeadAt (int a_BlockX, int a_BlockY, int a_BlockZ, cMobHeadCallback a_Callback)
 Calls the callback for the mob head block at the specified coords. More...
 
bool DoWithNoteBlockAt (int a_BlockX, int a_BlockY, int a_BlockZ, cNoteBlockCallback a_Callback)
 Calls the callback for the noteblock at the specified coords. More...
 
void FastSetBlock (Vector3i a_BlockPos, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta)
 Sets the block at the specified coords to the specified value. More...
 
bool ForEachBlockEntityInChunk (int a_ChunkX, int a_ChunkZ, cBlockEntityCallback a_Callback)
 Calls the callback for each block entity in the specified chunk. More...
 
bool ForEachBrewingstandInChunk (int a_ChunkX, int a_ChunkZ, cBrewingstandCallback a_Callback)
 Calls the callback for brewingstand in the specified chunk. More...
 
bool ForEachChestInChunk (int a_ChunkX, int a_ChunkZ, cChestCallback a_Callback)
 Calls the callback for each chest in the specified chunk. More...
 
bool ForEachChunkInRect (int a_MinChunkX, int a_MaxChunkX, int a_MinChunkZ, int a_MaxChunkZ, cChunkDataCallback &a_Callback)
 Calls the callback for each chunk in the coords specified (all cords are inclusive). More...
 
bool ForEachDispenserInChunk (int a_ChunkX, int a_ChunkZ, cDispenserCallback a_Callback)
 Calls the callback for each dispenser in the specified chunk. More...
 
bool ForEachDropperInChunk (int a_ChunkX, int a_ChunkZ, cDropperCallback a_Callback)
 Calls the callback for each dropper in the specified chunk. More...
 
bool ForEachDropSpenserInChunk (int a_ChunkX, int a_ChunkZ, cDropSpenserCallback a_Callback)
 Calls the callback for each dropspenser in the specified chunk. More...
 
bool ForEachEntity (cEntityCallback a_Callback)
 Calls the callback for each entity in the entire world; returns true if all entities processed, false if the callback aborted by returning true. More...
 
bool ForEachEntityInBox (const cBoundingBox &a_Box, cEntityCallback a_Callback)
 Calls the callback for each entity that has a nonempty intersection with the specified boundingbox. More...
 
bool ForEachEntityInChunk (int a_ChunkX, int a_ChunkZ, cEntityCallback a_Callback)
 Calls the callback for each entity in the specified chunk; returns true if all entities processed, false if the callback aborted by returning true. More...
 
bool ForEachFurnaceInChunk (int a_ChunkX, int a_ChunkZ, cFurnaceCallback a_Callback)
 Calls the callback for each furnace in the specified chunk. More...
 
bool ForEachLoadedChunk (cFunctionRef< bool(int, int)> a_Callback)
 Calls the callback for each loaded chunk. More...
 
bool GenerateChunk (int a_ChunkX, int a_ChunkZ, cChunkCoordCallback *a_CallAfter=nullptr)
 Queues the chunk for generating. More...
 
EMCSBiome GetBiomeAt (int a_BlockX, int a_BlockZ)
 Returns the biome at the specified coords. More...
 
BLOCKTYPE GetBlock (Vector3i a_BlockPos)
 
NIBBLETYPE GetBlockBlockLight (Vector3i a_BlockPos)
 
bool GetBlockInfo (Vector3i, BLOCKTYPE &a_BlockType, NIBBLETYPE &a_Meta, NIBBLETYPE &a_SkyLight, NIBBLETYPE &a_BlockLight)
 
NIBBLETYPE GetBlockMeta (Vector3i a_BlockPos)
 
bool GetBlocks (sSetBlockVector &a_Blocks, bool a_ContinueOnFailure)
 Retrieves block types and metas of the specified blocks. More...
 
NIBBLETYPE GetBlockSkyLight (Vector3i a_BlockPos)
 
bool GetBlockTypeMeta (Vector3i a_BlockPos, BLOCKTYPE &a_BlockType, NIBBLETYPE &a_BlockMeta)
 
bool GetChunkBlockTypes (int a_ChunkX, int a_ChunkZ, BLOCKTYPE *a_Blocks)
 Copies the chunk's blocktypes into a_Blocks; returns true if successful. More...
 
bool GetChunkData (cChunkCoords a_Coords, cChunkDataCallback &a_Callback)
 Calls the callback with the chunk's data, if available (with ChunkCS locked). More...
 
void GetChunkStats (int &a_NumChunksValid, int &a_NumChunksDirty)
 Returns the number of valid chunks and the number of dirty chunks. More...
 
cCriticalSectionGetCS (void)
 Returns the CS for locking the chunkmap; only cWorld::cLock may use this function! More...
 
int GetHeight (int a_BlockX, int a_BlockZ)
 
size_t GetNumChunks (void)
 
size_t GetNumUnusedDirtyChunks (void)
 Returns the number of unused dirty chunks. More...
 
bool GetSignLines (int a_BlockX, int a_BlockY, int a_BlockZ, AString &a_Line1, AString &a_Line2, AString &a_Line3, AString &a_Line4)
 Retrieves the test on the sign at the specified coords. More...
 
cWorldGetWorld (void)
 
int GrowPlantAt (Vector3i a_BlockPos, int a_NumStages=1)
 Grows the plant at the specified position by at most a_NumStages. More...
 
bool HasChunkAnyClients (int a_ChunkX, int a_ChunkZ)
 
bool HasEntity (UInt32 a_EntityID)
 Returns true if the entity with specified ID is present in the chunks. More...
 
bool IsChunkLighted (int a_ChunkX, int a_ChunkZ)
 
bool IsChunkQueued (int a_ChunkX, int a_ChunkZ)
 Returns true iff the chunk is in the loader / generator queue. More...
 
bool IsChunkValid (int a_ChunkX, int a_ChunkZ)
 
void MarkChunkDirty (int a_ChunkX, int a_ChunkZ)
 
void MarkChunkRegenerating (int a_ChunkX, int a_ChunkZ)
 Marks the chunk as being regenerated - all its clients want that chunk again (used by cWorld::RegenerateChunk()) More...
 
void MarkChunkSaved (int a_ChunkX, int a_ChunkZ)
 
void MarkChunkSaving (int a_ChunkX, int a_ChunkZ)
 
cItems PickupsFromBlock (Vector3i a_BlockPos, const cEntity *a_Digger, const cItem *a_Tool)
 Returns all the pickups that would result if the a_Digger dug up the block at a_BlockPos using a_Tool. More...
 
void PrepareChunk (int a_ChunkX, int a_ChunkZ, std::unique_ptr< cChunkCoordCallback > a_CallAfter={})
 Queues the chunk for preparing - making sure that it's generated and lit. More...
 
void QueueTickBlock (Vector3i a_AbsPos)
 Queues the specified block for ticking (block update) More...
 
void RemoveChunkClient (int a_ChunkX, int a_ChunkZ, cClientHandle *a_Client)
 Removes the client from the chunk. More...
 
void RemoveClientFromChunks (cClientHandle *a_Client)
 Removes the client from all chunks it is present in. More...
 
OwnedEntity RemoveEntity (cEntity &a_Entity)
 Removes the entity from its appropriate chunk Returns an owning reference to the found entity. More...
 
void ReplaceBlocks (const sSetBlockVector &a_Blocks, BLOCKTYPE a_FilterBlockType)
 Replaces world blocks with a_Blocks, if they are of type a_FilterBlockType. More...
 
void ReplaceTreeBlocks (const sSetBlockVector &a_Blocks)
 Special function used for growing trees, replaces only blocks that tree may overwrite. More...
 
void SaveAllChunks (void)
 
void SendBlockEntity (int a_BlockX, int a_BlockY, int a_BlockZ, cClientHandle &a_Client)
 Sends the block entity, if it is at the coords specified, to a_Client. More...
 
void SendBlockTo (int a_BlockX, int a_BlockY, int a_BlockZ, cPlayer &a_Player)
 Sends the block at the specified coords to the specified player. More...
 
bool SetAreaBiome (int a_MinX, int a_MaxX, int a_MinZ, int a_MaxZ, EMCSBiome a_Biome)
 Sets the biome at the area. More...
 
bool SetBiomeAt (int a_BlockX, int a_BlockZ, EMCSBiome a_Biome)
 Sets the biome at the specified coords. More...
 
void SetBlock (Vector3i a_BlockPos, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta)
 
void SetBlockMeta (Vector3i a_BlockPos, NIBBLETYPE a_BlockMeta, bool a_ShouldMarkDirty, bool a_ShouldInformClients)
 Sets the meta for the specified block, while keeping the blocktype. More...
 
void SetBlocks (const sSetBlockVector &a_Blocks)
 Performs the specified single-block set operations simultaneously, as if SetBlock() was called for each item. More...
 
void SetChunkAlwaysTicked (int a_ChunkX, int a_ChunkZ, bool a_AlwaysTicked)
 Increments (a_AlwaysTicked == true) or decrements (false) the m_AlwaysTicked counter for the specified chunk. More...
 
void SetChunkData (cSetChunkData &a_SetChunkData)
 Sets the chunk data as either loaded from the storage or generated. More...
 
void SetNextBlockTick (int a_BlockX, int a_BlockY, int a_BlockZ)
 Sets the blockticking to start at the specified block. More...
 
bool SetSignLines (int a_BlockX, int a_BlockY, int a_BlockZ, const AString &a_Line1, const AString &a_Line2, const AString &a_Line3, const AString &a_Line4)
 Sets the sign text. More...
 
void SpawnMobs (cMobSpawner &a_MobSpawner)
 Try to Spawn Monsters inside all Chunks. More...
 
void Tick (std::chrono::milliseconds a_Dt)
 
void TickBlock (int a_BlockX, int a_BlockY, int a_BlockZ)
 Ticks a single block. More...
 
void TouchChunk (int a_ChunkX, int a_ChunkZ)
 Touches the chunk, causing it to be loaded or generated. More...
 
void TrackInDeadlockDetect (cDeadlockDetect &a_DeadlockDetect, const AString &a_WorldName)
 Adds this chunkmap's CS to the DeadlockDetect's tracked CSs. More...
 
bool TryGetHeight (int a_BlockX, int a_BlockZ, int &a_Height)
 
void UnloadUnusedChunks (void)
 
void UntrackInDeadlockDetect (cDeadlockDetect &a_DeadlockDetect)
 Removes this chunkmap's CS from the DeadlockDetect's tracked CSs. More...
 
bool UseBlockEntity (cPlayer *a_Player, int a_X, int a_Y, int a_Z)
 a_Player rclked block entity at the coords specified, handle it returns true if the use was successful, return false to use the block as a "normal" block More...
 
void WakeUpSimulators (Vector3i a_Block)
 Wakes up simulators for the specified block. More...
 
void WakeUpSimulators (int a_BlockX, int a_BlockY, int a_BlockZ)
 
bool WriteBlockArea (cBlockArea &a_Area, int a_MinBlockX, int a_MinBlockY, int a_MinBlockZ, int a_DataTypes)
 Writes the block area into the specified coords. More...
 
 ~cChunkMap ()
 

Private Types

typedef std::list< cChunkStay * > cChunkStays
 

Private Member Functions

void AddChunkStay (cChunkStay &a_ChunkStay)
 Adds a new cChunkStay descendant to the internal list of ChunkStays; loads its chunks. More...
 
cChunkPtr ConstructChunk (int a_ChunkX, int a_ChunkZ)
 Returns or creates and returns a chunk pointer corresponding to the given chunk coordinates. More...
 
void DelChunkStay (cChunkStay &a_ChunkStay)
 Removes the specified cChunkStay descendant from the internal list of ChunkStays. More...
 
cChunkFindChunk (int a_ChunkX, int a_ChunkZ)
 Locates a chunk ptr in the chunkmap; doesn't create it when not found; assumes m_CSChunks is locked. More...
 
cChunkPtr GetChunk (int a_ChunkX, int a_ChunkZ)
 Constructs a chunk and queues it for loading / generating if not valid, returning it. More...
 
cChunkPtr GetChunkNoGen (cChunkCoords a_Chunk)
 Constructs a chunk and queues the chunk for loading if not valid, returning it; doesn't generate. More...
 
cChunkPtr GetChunkNoGen (int a_ChunkX, int a_ChunkZ)
 
cChunkPtr GetChunkNoLoad (cChunkCoords a_Coords)
 Constructs a chunk, returning it. More...
 
cChunkPtr GetChunkNoLoad (int a_ChunkX, int a_ChunkZ)
 OBSOLETE, use the cChunkCoords-based overload instead. More...
 

Private Attributes

std::map< ChunkCoordinate, std::unique_ptr< cChunk >, ChunkCoordinate::Comparerm_Chunks
 A map of chunk coordinates to chunk pointers Uses a map (as opposed to unordered_map) because sorted maps are apparently faster. More...
 
cChunkStays m_ChunkStays
 The cChunkStay descendants that are currently enabled in this chunkmap. More...
 
cCriticalSection m_CSChunks
 
cEvent m_evtChunkValid
 
std::unique_ptr< cAllocationPool< cChunkData::sChunkSection > > m_Pool
 
cWorldm_World
 

Friends

class cChunk
 
class cChunkStay
 

Detailed Description

Definition at line 65 of file ChunkMap.h.

Member Typedef Documentation

typedef std::list<cChunkStay *> cChunkMap::cChunkStays
private

Definition at line 455 of file ChunkMap.h.

Constructor & Destructor Documentation

cChunkMap::cChunkMap ( cWorld a_World)

Definition at line 38 of file ChunkMap.cpp.

cChunkMap::~cChunkMap ( )

Definition at line 52 of file ChunkMap.cpp.

Member Function Documentation

bool cChunkMap::AddChunkClient ( int  a_ChunkX,
int  a_ChunkZ,
cClientHandle a_Client 
)

Adds client to a chunk, if not already present; returns true if added, false if present.

Definition at line 962 of file ChunkMap.cpp.

void cChunkMap::AddChunkStay ( cChunkStay a_ChunkStay)
private

Adds a new cChunkStay descendant to the internal list of ChunkStays; loads its chunks.

To be used only by cChunkStay; others should use cChunkStay::Enable() instead

Definition at line 2223 of file ChunkMap.cpp.

void cChunkMap::AddEntity ( OwnedEntity  a_Entity)

Adds the entity to its appropriate chunk, takes ownership of the entity pointer.

Definition at line 1005 of file ChunkMap.cpp.

void cChunkMap::AddEntityIfNotPresent ( OwnedEntity  a_Entity)

Adds the entity to its appropriate chunk, if the entity is not already added.

Takes ownership of the entity pointer

Definition at line 1023 of file ChunkMap.cpp.

void cChunkMap::ChunkLighted ( int  a_ChunkX,
int  a_ChunkZ,
const cChunkDef::BlockNibbles a_BlockLight,
const cChunkDef::BlockNibbles a_SkyLight 
)

Definition at line 325 of file ChunkMap.cpp.

void cChunkMap::ChunkLoadFailed ( int  a_ChunkX,
int  a_ChunkZ 
)

Marks the chunk as failed-to-load.

Definition at line 1824 of file ChunkMap.cpp.

void cChunkMap::ChunkValidated ( void  )

Definition at line 2165 of file ChunkMap.cpp.

void cChunkMap::CollectMobCensus ( cMobCensus a_ToFill)

Make a Mob census, of all mobs, their family, their chunk and their distance to closest player.

Definition at line 2028 of file ChunkMap.cpp.

void cChunkMap::CollectPickupsByPlayer ( cPlayer a_Player)

Makes the specified player collect all the pickups around them.

Definition at line 508 of file ChunkMap.cpp.

void cChunkMap::CompareChunkClients ( int  a_ChunkX1,
int  a_ChunkZ1,
int  a_ChunkX2,
int  a_ChunkZ2,
cClientDiffCallback a_Callback 
)

Compares clients of two chunks, calls the callback accordingly.

Definition at line 911 of file ChunkMap.cpp.

void cChunkMap::CompareChunkClients ( cChunk a_Chunk1,
cChunk a_Chunk2,
cClientDiffCallback a_Callback 
)

Compares clients of two chunks, calls the callback accordingly.

Definition at line 932 of file ChunkMap.cpp.

cChunkPtr cChunkMap::ConstructChunk ( int  a_ChunkX,
int  a_ChunkZ 
)
private

Returns or creates and returns a chunk pointer corresponding to the given chunk coordinates.

Emplaces this chunk in the chunk map. Developers SHOULD use the GetChunk variants instead of this function.

Definition at line 65 of file ChunkMap.cpp.

void cChunkMap::DelChunkStay ( cChunkStay a_ChunkStay)
private

Removes the specified cChunkStay descendant from the internal list of ChunkStays.

To be used only by cChunkStay; others should use cChunkStay::Disable() instead

Definition at line 2258 of file ChunkMap.cpp.

bool cChunkMap::DigBlock ( Vector3i  a_BlockPos)

Removes the block at the specified coords and wakes up simulators.

Returns false if the chunk is not loaded (and the block is not dug). Returns true if successful.

Definition at line 853 of file ChunkMap.cpp.

void cChunkMap::DoExplosionAt ( double  a_ExplosionSize,
double  a_BlockX,
double  a_BlockY,
double  a_BlockZ,
cVector3iArray a_BlockAffected 
)

Destroys and returns a list of blocks destroyed in the explosion at the specified coordinates.

Definition at line 1143 of file ChunkMap.cpp.

bool cChunkMap::DoWithBeaconAt ( int  a_BlockX,
int  a_BlockY,
int  a_BlockZ,
cBeaconCallback  a_Callback 
)

Calls the callback for the beacon at the specified coords.

Returns false if there's no beacon at those coords, true if found.

Definition at line 1481 of file ChunkMap.cpp.

bool cChunkMap::DoWithBedAt ( int  a_BlockX,
int  a_BlockY,
int  a_BlockZ,
cBedCallback  a_Callback 
)

Calls the callback for the bed at the specified coords.

Returns false if there's no bed at those coords, true if found.

Definition at line 1499 of file ChunkMap.cpp.

bool cChunkMap::DoWithBlockEntityAt ( int  a_BlockX,
int  a_BlockY,
int  a_BlockZ,
cBlockEntityCallback  a_Callback 
)

Calls the callback for the block entity at the specified coords.

Returns false if there's no block entity at those coords, true if found.

Definition at line 1463 of file ChunkMap.cpp.

bool cChunkMap::DoWithBrewingstandAt ( int  a_BlockX,
int  a_BlockY,
int  a_BlockZ,
cBrewingstandCallback  a_Callback 
)

Calls the callback for the brewingstand at the specified coords; returns false if there's no brewingstand at those coords, true if found.

Definition at line 1517 of file ChunkMap.cpp.

bool cChunkMap::DoWithChestAt ( int  a_BlockX,
int  a_BlockY,
int  a_BlockZ,
cChestCallback  a_Callback 
)

Calls the callback for the chest at the specified coords.

Returns false if there's no chest at those coords, true if found.

Definition at line 1535 of file ChunkMap.cpp.

bool cChunkMap::DoWithChunk ( int  a_ChunkX,
int  a_ChunkZ,
cChunkCallback  a_Callback 
)

Calls the callback for the chunk specified, with ChunkMapCS locked; returns false if the chunk doesn't exist, otherwise returns the same value as the callback.

Definition at line 195 of file ChunkMap.cpp.

bool cChunkMap::DoWithChunkAt ( Vector3i  a_BlockPos,
cChunkCallback  a_Callback 
)

Calls the callback for the chunk at the block position specified, with ChunkMapCS locked; returns false if the chunk doesn't exist, otherwise returns the same value as the callback.

Definition at line 210 of file ChunkMap.cpp.

bool cChunkMap::DoWithCommandBlockAt ( int  a_BlockX,
int  a_BlockY,
int  a_BlockZ,
cCommandBlockCallback  a_Callback 
)

Calls the callback for the command block at the specified coords.

Returns false if there's no command block at those coords or callback returns true, returns true if found.

Definition at line 1643 of file ChunkMap.cpp.

bool cChunkMap::DoWithDispenserAt ( int  a_BlockX,
int  a_BlockY,
int  a_BlockZ,
cDispenserCallback  a_Callback 
)

Calls the callback for the dispenser at the specified coords.

Returns false if there's no dispenser at those coords or callback returns true, returns true if found.

Definition at line 1553 of file ChunkMap.cpp.

bool cChunkMap::DoWithDropperAt ( int  a_BlockX,
int  a_BlockY,
int  a_BlockZ,
cDropperCallback  a_Callback 
)

Calls the callback for the dropper at the specified coords.

Returns false if there's no dropper at those coords or callback returns true, returns true if found.

Definition at line 1571 of file ChunkMap.cpp.

bool cChunkMap::DoWithDropSpenserAt ( int  a_BlockX,
int  a_BlockY,
int  a_BlockZ,
cDropSpenserCallback  a_Callback 
)

Calls the callback for the dropspenser at the specified coords.

Returns false if there's no dropspenser at those coords or callback returns true, returns true if found.

Definition at line 1589 of file ChunkMap.cpp.

bool cChunkMap::DoWithEntityByID ( UInt32  a_EntityID,
cEntityCallback  a_Callback 
)

Calls the callback if the entity with the specified ID is found, with the entity object as the callback param.

Returns true if entity found and callback returned false.

Definition at line 1340 of file ChunkMap.cpp.

bool cChunkMap::DoWithFlowerPotAt ( int  a_BlockX,
int  a_BlockY,
int  a_BlockZ,
cFlowerPotCallback  a_Callback 
)

Calls the callback for the flower pot at the specified coords.

Returns false if there's no flower pot at those coords or callback returns true, returns true if found.

Definition at line 1679 of file ChunkMap.cpp.

bool cChunkMap::DoWithFurnaceAt ( int  a_BlockX,
int  a_BlockY,
int  a_BlockZ,
cFurnaceCallback  a_Callback 
)

Calls the callback for the furnace at the specified coords.

Returns false if there's no furnace at those coords or callback returns true, returns true if found.

Definition at line 1607 of file ChunkMap.cpp.

bool cChunkMap::DoWithMobHeadAt ( int  a_BlockX,
int  a_BlockY,
int  a_BlockZ,
cMobHeadCallback  a_Callback 
)

Calls the callback for the mob head block at the specified coords.

Returns false if there's no mob head block at those coords or callback returns true, returns true if found.

Definition at line 1661 of file ChunkMap.cpp.

bool cChunkMap::DoWithNoteBlockAt ( int  a_BlockX,
int  a_BlockY,
int  a_BlockZ,
cNoteBlockCallback  a_Callback 
)

Calls the callback for the noteblock at the specified coords.

Returns false if there's no noteblock at those coords or callback returns true, returns true if found.

Definition at line 1625 of file ChunkMap.cpp.

void cChunkMap::FastSetBlock ( Vector3i  a_BlockPos,
BLOCKTYPE  a_BlockType,
NIBBLETYPE  a_BlockMeta 
)

Sets the block at the specified coords to the specified value.

The replacement doesn't trigger block updates, nor wake up simulators. The replaced blocks aren't checked for block entities (block entity is leaked if it exists at this block). If the chunk is invalid, the operation is ignored silently.

Definition at line 463 of file ChunkMap.cpp.

cChunk * cChunkMap::FindChunk ( int  a_ChunkX,
int  a_ChunkZ 
)
private

Locates a chunk ptr in the chunkmap; doesn't create it when not found; assumes m_CSChunks is locked.

To be called only from cChunkMap.

Definition at line 148 of file ChunkMap.cpp.

bool cChunkMap::ForEachBlockEntityInChunk ( int  a_ChunkX,
int  a_ChunkZ,
cBlockEntityCallback  a_Callback 
)

Calls the callback for each block entity in the specified chunk.

Returns true if all block entities processed, false if the callback aborted by returning true.

Definition at line 1358 of file ChunkMap.cpp.

bool cChunkMap::ForEachBrewingstandInChunk ( int  a_ChunkX,
int  a_ChunkZ,
cBrewingstandCallback  a_Callback 
)

Calls the callback for brewingstand in the specified chunk.

Returns true if all brewingstands processed, false if the callback aborted by returning true.

Definition at line 1373 of file ChunkMap.cpp.

bool cChunkMap::ForEachChestInChunk ( int  a_ChunkX,
int  a_ChunkZ,
cChestCallback  a_Callback 
)

Calls the callback for each chest in the specified chunk.

Returns true if all chests processed, false if the callback aborted by returning true.

Definition at line 1388 of file ChunkMap.cpp.

bool cChunkMap::ForEachChunkInRect ( int  a_MinChunkX,
int  a_MaxChunkX,
int  a_MinChunkZ,
int  a_MaxChunkZ,
cChunkDataCallback &  a_Callback 
)

Calls the callback for each chunk in the coords specified (all cords are inclusive).

Returns true if all chunks have been processed successfully

Definition at line 1888 of file ChunkMap.cpp.

bool cChunkMap::ForEachDispenserInChunk ( int  a_ChunkX,
int  a_ChunkZ,
cDispenserCallback  a_Callback 
)

Calls the callback for each dispenser in the specified chunk.

Returns true if all dispensers processed, false if the callback aborted by returning true.

Definition at line 1403 of file ChunkMap.cpp.

bool cChunkMap::ForEachDropperInChunk ( int  a_ChunkX,
int  a_ChunkZ,
cDropperCallback  a_Callback 
)

Calls the callback for each dropper in the specified chunk.

Returns true if all droppers processed, false if the callback aborted by returning true.

Definition at line 1418 of file ChunkMap.cpp.

bool cChunkMap::ForEachDropSpenserInChunk ( int  a_ChunkX,
int  a_ChunkZ,
cDropSpenserCallback  a_Callback 
)

Calls the callback for each dropspenser in the specified chunk.

Returns true if all dropspensers processed, false if the callback aborted by returning true.

Definition at line 1433 of file ChunkMap.cpp.

bool cChunkMap::ForEachEntity ( cEntityCallback  a_Callback)

Calls the callback for each entity in the entire world; returns true if all entities processed, false if the callback aborted by returning true.

Definition at line 1079 of file ChunkMap.cpp.

bool cChunkMap::ForEachEntityInBox ( const cBoundingBox a_Box,
cEntityCallback  a_Callback 
)

Calls the callback for each entity that has a nonempty intersection with the specified boundingbox.

Returns true if all entities processed, false if the callback aborted by returning true. If any chunk in the box is missing, ignores the entities in that chunk silently.

Definition at line 1111 of file ChunkMap.cpp.

bool cChunkMap::ForEachEntityInChunk ( int  a_ChunkX,
int  a_ChunkZ,
cEntityCallback  a_Callback 
)

Calls the callback for each entity in the specified chunk; returns true if all entities processed, false if the callback aborted by returning true.

Definition at line 1096 of file ChunkMap.cpp.

bool cChunkMap::ForEachFurnaceInChunk ( int  a_ChunkX,
int  a_ChunkZ,
cFurnaceCallback  a_Callback 
)

Calls the callback for each furnace in the specified chunk.

Returns true if all furnaces processed, false if the callback aborted by returning true.

Definition at line 1448 of file ChunkMap.cpp.

bool cChunkMap::ForEachLoadedChunk ( cFunctionRef< bool(int, int)>  a_Callback)

Calls the callback for each loaded chunk.

Returns true if all chunks have been processed successfully

Definition at line 1917 of file ChunkMap.cpp.

bool cChunkMap::GenerateChunk ( int  a_ChunkX,
int  a_ChunkZ,
cChunkCoordCallback a_CallAfter = nullptr 
)

Queues the chunk for generating.

First attempts to load the chunk from the storage. If that fails, queues the chunk for generating. The specified callback is called after the chunk has been loaded / generated. It is legal to call without the callback. Returns true if successful, false if not (possibly an out-of-memory error). If the return value is true, the callback was / will be called.

Definition at line 1748 of file ChunkMap.cpp.

EMCSBiome cChunkMap::GetBiomeAt ( int  a_BlockX,
int  a_BlockZ 
)

Returns the biome at the specified coords.

Reads the biome from the chunk, if loaded, otherwise uses the world generator to provide the biome value

Definition at line 749 of file ChunkMap.cpp.

BLOCKTYPE cChunkMap::GetBlock ( Vector3i  a_BlockPos)

Definition at line 535 of file ChunkMap.cpp.

NIBBLETYPE cChunkMap::GetBlockBlockLight ( Vector3i  a_BlockPos)

Definition at line 592 of file ChunkMap.cpp.

bool cChunkMap::GetBlockInfo ( Vector3i  a_BlockPos,
BLOCKTYPE a_BlockType,
NIBBLETYPE a_Meta,
NIBBLETYPE a_SkyLight,
NIBBLETYPE a_BlockLight 
)

Definition at line 672 of file ChunkMap.cpp.

NIBBLETYPE cChunkMap::GetBlockMeta ( Vector3i  a_BlockPos)

Definition at line 554 of file ChunkMap.cpp.

bool cChunkMap::GetBlocks ( sSetBlockVector a_Blocks,
bool  a_ContinueOnFailure 
)

Retrieves block types and metas of the specified blocks.

If a chunk is not loaded, doesn't modify the block and consults a_ContinueOnFailure whether to process the rest of the array. Returns true if all blocks were read, false if any one failed.

Definition at line 827 of file ChunkMap.cpp.

NIBBLETYPE cChunkMap::GetBlockSkyLight ( Vector3i  a_BlockPos)

Definition at line 573 of file ChunkMap.cpp.

bool cChunkMap::GetBlockTypeMeta ( Vector3i  a_BlockPos,
BLOCKTYPE a_BlockType,
NIBBLETYPE a_BlockMeta 
)

Definition at line 653 of file ChunkMap.cpp.

cChunkPtr cChunkMap::GetChunk ( int  a_ChunkX,
int  a_ChunkZ 
)
private

Constructs a chunk and queues it for loading / generating if not valid, returning it.

Definition at line 94 of file ChunkMap.cpp.

bool cChunkMap::GetChunkBlockTypes ( int  a_ChunkX,
int  a_ChunkZ,
BLOCKTYPE a_Blocks 
)

Copies the chunk's blocktypes into a_Blocks; returns true if successful.

Definition at line 367 of file ChunkMap.cpp.

bool cChunkMap::GetChunkData ( cChunkCoords  a_Coords,
cChunkDataCallback &  a_Callback 
)

Calls the callback with the chunk's data, if available (with ChunkCS locked).

Returns true if the chunk was reported successfully, false if not (chunk not present or callback failed).

Definition at line 345 of file ChunkMap.cpp.

cChunkPtr cChunkMap::GetChunkNoGen ( cChunkCoords  a_Chunk)
private

Constructs a chunk and queues the chunk for loading if not valid, returning it; doesn't generate.

Definition at line 116 of file ChunkMap.cpp.

cChunkPtr cChunkMap::GetChunkNoGen ( int  a_ChunkX,
int  a_ChunkZ 
)
inlineprivate

Definition at line 484 of file ChunkMap.h.

cChunkPtr cChunkMap::GetChunkNoLoad ( cChunkCoords  a_Coords)
private

Constructs a chunk, returning it.

Doesn't load, doesn't generate

Definition at line 138 of file ChunkMap.cpp.

cChunkPtr cChunkMap::GetChunkNoLoad ( int  a_ChunkX,
int  a_ChunkZ 
)
inlineprivate

OBSOLETE, use the cChunkCoords-based overload instead.

Constructs a chunk, returning it. Doesn't load, doesn't generate

Definition at line 494 of file ChunkMap.h.

void cChunkMap::GetChunkStats ( int &  a_NumChunksValid,
int &  a_NumChunksDirty 
)

Returns the number of valid chunks and the number of dirty chunks.

Definition at line 1975 of file ChunkMap.cpp.

cCriticalSection& cChunkMap::GetCS ( void  )
inline

Returns the CS for locking the chunkmap; only cWorld::cLock may use this function!

Definition at line 400 of file ChunkMap.h.

int cChunkMap::GetHeight ( int  a_BlockX,
int  a_BlockZ 
)

Definition at line 416 of file ChunkMap.cpp.

size_t cChunkMap::GetNumChunks ( void  )

Definition at line 2137 of file ChunkMap.cpp.

size_t cChunkMap::GetNumUnusedDirtyChunks ( void  )

Returns the number of unused dirty chunks.

Those are chunks that we can save and then unload

Definition at line 2147 of file ChunkMap.cpp.

bool cChunkMap::GetSignLines ( int  a_BlockX,
int  a_BlockY,
int  a_BlockZ,
AString a_Line1,
AString a_Line2,
AString a_Line3,
AString a_Line4 
)

Retrieves the test on the sign at the specified coords.

Returns false if there's no sign at those coords, true if found.

Definition at line 1697 of file ChunkMap.cpp.

cWorld* cChunkMap::GetWorld ( void  )
inline

Definition at line 387 of file ChunkMap.h.

int cChunkMap::GrowPlantAt ( Vector3i  a_BlockPos,
int  a_NumStages = 1 
)

Grows the plant at the specified position by at most a_NumStages.

The block's Grow handler is invoked. Returns the number of stages the plant has grown, 0 if not a plant.

Definition at line 1994 of file ChunkMap.cpp.

bool cChunkMap::HasChunkAnyClients ( int  a_ChunkX,
int  a_ChunkZ 
)

Definition at line 405 of file ChunkMap.cpp.

bool cChunkMap::HasEntity ( UInt32  a_EntityID)

Returns true if the entity with specified ID is present in the chunks.

Definition at line 1044 of file ChunkMap.cpp.

bool cChunkMap::IsChunkLighted ( int  a_ChunkX,
int  a_ChunkZ 
)

Definition at line 1872 of file ChunkMap.cpp.

bool cChunkMap::IsChunkQueued ( int  a_ChunkX,
int  a_ChunkZ 
)

Returns true iff the chunk is in the loader / generator queue.

Definition at line 383 of file ChunkMap.cpp.

bool cChunkMap::IsChunkValid ( int  a_ChunkX,
int  a_ChunkZ 
)

Definition at line 394 of file ChunkMap.cpp.

void cChunkMap::MarkChunkDirty ( int  a_ChunkX,
int  a_ChunkZ 
)

Definition at line 236 of file ChunkMap.cpp.

void cChunkMap::MarkChunkRegenerating ( int  a_ChunkX,
int  a_ChunkZ 
)

Marks the chunk as being regenerated - all its clients want that chunk again (used by cWorld::RegenerateChunk())

Definition at line 1856 of file ChunkMap.cpp.

void cChunkMap::MarkChunkSaved ( int  a_ChunkX,
int  a_ChunkZ 
)

Definition at line 266 of file ChunkMap.cpp.

void cChunkMap::MarkChunkSaving ( int  a_ChunkX,
int  a_ChunkZ 
)

Definition at line 251 of file ChunkMap.cpp.

cItems cChunkMap::PickupsFromBlock ( Vector3i  a_BlockPos,
const cEntity a_Digger,
const cItem a_Tool 
)

Returns all the pickups that would result if the a_Digger dug up the block at a_BlockPos using a_Tool.

a_Digger is usually a player, but can be nullptr for natural causes. a_Tool is an optional item used to dig up the block, used by the handlers (empty hand vs shears produce different pickups from leaves). An empty hand is assumed if a_Tool is nullptr. Returns an empty cItems object if the chunk is not present.

Definition at line 876 of file ChunkMap.cpp.

void cChunkMap::PrepareChunk ( int  a_ChunkX,
int  a_ChunkZ,
std::unique_ptr< cChunkCoordCallback a_CallAfter = {} 
)

Queues the chunk for preparing - making sure that it's generated and lit.

The specified chunk is queued to be loaded or generated, and lit if needed. The specified callback is called after the chunk has been prepared. If there's no preparation to do, only the callback is called. It is legal to call without the callback.

Definition at line 1725 of file ChunkMap.cpp.

void cChunkMap::QueueTickBlock ( Vector3i  a_AbsPos)

Queues the specified block for ticking (block update)

Definition at line 2174 of file ChunkMap.cpp.

void cChunkMap::RemoveChunkClient ( int  a_ChunkX,
int  a_ChunkZ,
cClientHandle a_Client 
)

Removes the client from the chunk.

Definition at line 977 of file ChunkMap.cpp.

void cChunkMap::RemoveClientFromChunks ( cClientHandle a_Client)

Removes the client from all chunks it is present in.

Definition at line 992 of file ChunkMap.cpp.

OwnedEntity cChunkMap::RemoveEntity ( cEntity a_Entity)

Removes the entity from its appropriate chunk Returns an owning reference to the found entity.

Definition at line 1061 of file ChunkMap.cpp.

void cChunkMap::ReplaceBlocks ( const sSetBlockVector a_Blocks,
BLOCKTYPE  a_FilterBlockType 
)

Replaces world blocks with a_Blocks, if they are of type a_FilterBlockType.

Definition at line 692 of file ChunkMap.cpp.

void cChunkMap::ReplaceTreeBlocks ( const sSetBlockVector a_Blocks)

Special function used for growing trees, replaces only blocks that tree may overwrite.

Definition at line 714 of file ChunkMap.cpp.

void cChunkMap::SaveAllChunks ( void  )

Definition at line 2121 of file ChunkMap.cpp.

void cChunkMap::SendBlockEntity ( int  a_BlockX,
int  a_BlockY,
int  a_BlockZ,
cClientHandle a_Client 
)

Sends the block entity, if it is at the coords specified, to a_Client.

Definition at line 160 of file ChunkMap.cpp.

void cChunkMap::SendBlockTo ( int  a_BlockX,
int  a_BlockY,
int  a_BlockZ,
cPlayer a_Player 
)

Sends the block at the specified coords to the specified player.

Uses a blockchange packet to send the block. If the relevant chunk isn't loaded, doesn't do anything.

Definition at line 894 of file ChunkMap.cpp.

bool cChunkMap::SetAreaBiome ( int  a_MinX,
int  a_MaxX,
int  a_MinZ,
int  a_MaxZ,
EMCSBiome  a_Biome 
)

Sets the biome at the area.

Returns true if successful, false if any subarea failed (chunk not loaded). (Re)sends the chunks to their relevant clients if successful.

Definition at line 789 of file ChunkMap.cpp.

bool cChunkMap::SetBiomeAt ( int  a_BlockX,
int  a_BlockZ,
EMCSBiome  a_Biome 
)

Sets the biome at the specified coords.

Returns true if successful, false if not (chunk not loaded). Doesn't resend the chunk to clients.

Definition at line 770 of file ChunkMap.cpp.

void cChunkMap::SetBlock ( Vector3i  a_BlockPos,
BLOCKTYPE  a_BlockType,
NIBBLETYPE  a_BlockMeta 
)

Definition at line 629 of file ChunkMap.cpp.

void cChunkMap::SetBlockMeta ( Vector3i  a_BlockPos,
NIBBLETYPE  a_BlockMeta,
bool  a_ShouldMarkDirty,
bool  a_ShouldInformClients 
)

Sets the meta for the specified block, while keeping the blocktype.

If a_ShouldMarkDirty is true, the chunk is marked dirty by this change (false is used eg. by water turning still). If a_ShouldInformClients is true, the change is broadcast to all clients of the chunk. Ignored if the chunk is invalid.

Definition at line 611 of file ChunkMap.cpp.

void cChunkMap::SetBlocks ( const sSetBlockVector a_Blocks)

Performs the specified single-block set operations simultaneously, as if SetBlock() was called for each item.

Is more efficient than calling SetBlock() multiple times. If the chunk for any of the blocks is not loaded, the set operation is ignored silently.

Definition at line 480 of file ChunkMap.cpp.

void cChunkMap::SetChunkAlwaysTicked ( int  a_ChunkX,
int  a_ChunkZ,
bool  a_AlwaysTicked 
)

Increments (a_AlwaysTicked == true) or decrements (false) the m_AlwaysTicked counter for the specified chunk.

If the m_AlwaysTicked counter is greater than zero, the chunk is ticked in the tick-thread regardless of whether it has any clients or not. This function allows nesting and task-concurrency (multiple separate tasks can request ticking and as long as at least one requests is active the chunk will be ticked).

Definition at line 2191 of file ChunkMap.cpp.

void cChunkMap::SetChunkData ( cSetChunkData a_SetChunkData)

Sets the chunk data as either loaded from the storage or generated.

BlockLight and BlockSkyLight are optional, if not present, chunk will be marked as unlighted. If MarkDirty is set, the chunk is set as dirty (used after generating) Modifies the BlockEntity list in a_SetChunkData - moves the block entities into the chunk.

Definition at line 281 of file ChunkMap.cpp.

void cChunkMap::SetNextBlockTick ( int  a_BlockX,
int  a_BlockY,
int  a_BlockZ 
)

Sets the blockticking to start at the specified block.

Only one blocktick per chunk may be set, second call overwrites the first call

Definition at line 2011 of file ChunkMap.cpp.

bool cChunkMap::SetSignLines ( int  a_BlockX,
int  a_BlockY,
int  a_BlockZ,
const AString a_Line1,
const AString a_Line2,
const AString a_Line3,
const AString a_Line4 
)

Sets the sign text.

Returns true if sign text changed.

Definition at line 1839 of file ChunkMap.cpp.

void cChunkMap::SpawnMobs ( cMobSpawner a_MobSpawner)

Try to Spawn Monsters inside all Chunks.

Definition at line 2047 of file ChunkMap.cpp.

void cChunkMap::Tick ( std::chrono::milliseconds  a_Dt)

Definition at line 2064 of file ChunkMap.cpp.

void cChunkMap::TickBlock ( int  a_BlockX,
int  a_BlockY,
int  a_BlockZ 
)

Ticks a single block.

Used by cWorld::TickQueuedBlocks() to tick the queued blocks

Definition at line 2081 of file ChunkMap.cpp.

void cChunkMap::TouchChunk ( int  a_ChunkX,
int  a_ChunkZ 
)

Touches the chunk, causing it to be loaded or generated.

Definition at line 1715 of file ChunkMap.cpp.

void cChunkMap::TrackInDeadlockDetect ( cDeadlockDetect a_DeadlockDetect,
const AString a_WorldName 
)

Adds this chunkmap's CS to the DeadlockDetect's tracked CSs.

Definition at line 2205 of file ChunkMap.cpp.

bool cChunkMap::TryGetHeight ( int  a_BlockX,
int  a_BlockZ,
int &  a_Height 
)

Definition at line 444 of file ChunkMap.cpp.

void cChunkMap::UnloadUnusedChunks ( void  )

Definition at line 2098 of file ChunkMap.cpp.

void cChunkMap::UntrackInDeadlockDetect ( cDeadlockDetect a_DeadlockDetect)

Removes this chunkmap's CS from the DeadlockDetect's tracked CSs.

Definition at line 2214 of file ChunkMap.cpp.

bool cChunkMap::UseBlockEntity ( cPlayer a_Player,
int  a_X,
int  a_Y,
int  a_Z 
)

a_Player rclked block entity at the coords specified, handle it returns true if the use was successful, return false to use the block as a "normal" block

Definition at line 177 of file ChunkMap.cpp.

void cChunkMap::WakeUpSimulators ( Vector3i  a_Block)

Wakes up simulators for the specified block.

Definition at line 221 of file ChunkMap.cpp.

void cChunkMap::WakeUpSimulators ( int  a_BlockX,
int  a_BlockY,
int  a_BlockZ 
)
inline

Definition at line 89 of file ChunkMap.h.

bool cChunkMap::WriteBlockArea ( cBlockArea a_Area,
int  a_MinBlockX,
int  a_MinBlockY,
int  a_MinBlockZ,
int  a_DataTypes 
)

Writes the block area into the specified coords.

Returns true if all chunks have been processed. Prefer cBlockArea::Write() instead.

Definition at line 1937 of file ChunkMap.cpp.

Friends And Related Function Documentation

friend class cChunk
friend

Definition at line 418 of file ChunkMap.h.

friend class cChunkStay
friend

Definition at line 421 of file ChunkMap.h.

Member Data Documentation

std::map<ChunkCoordinate, std::unique_ptr<cChunk>, ChunkCoordinate::Comparer> cChunkMap::m_Chunks
private

A map of chunk coordinates to chunk pointers Uses a map (as opposed to unordered_map) because sorted maps are apparently faster.

Definition at line 461 of file ChunkMap.h.

cChunkStays cChunkMap::m_ChunkStays
private

The cChunkStay descendants that are currently enabled in this chunkmap.

Definition at line 468 of file ChunkMap.h.

cCriticalSection cChunkMap::m_CSChunks
mutableprivate

Definition at line 457 of file ChunkMap.h.

cEvent cChunkMap::m_evtChunkValid
private

Definition at line 463 of file ChunkMap.h.

std::unique_ptr<cAllocationPool<cChunkData::sChunkSection> > cChunkMap::m_Pool
private

Definition at line 470 of file ChunkMap.h.

cWorld* cChunkMap::m_World
private

Definition at line 465 of file ChunkMap.h.


The documentation for this class was generated from the following files: