![]() |
Cuberite
A lightweight, fast and extensible game server for Minecraft
|
#include <ChunkMap.h>
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... | |
cCriticalSection & | GetCS (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... | |
cWorld * | GetWorld (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... | |
cChunk * | FindChunk (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::Comparer > | m_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 |
cWorld * | m_World |
Friends | |
class | cChunk |
class | cChunkStay |
Definition at line 65 of file ChunkMap.h.
|
private |
Definition at line 455 of file ChunkMap.h.
cChunkMap::cChunkMap | ( | cWorld * | a_World | ) |
Definition at line 38 of file ChunkMap.cpp.
cChunkMap::~cChunkMap | ( | ) |
Definition at line 52 of file ChunkMap.cpp.
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.
|
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.
|
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.
|
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.
|
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.
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.
|
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.
|
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.
|
inlineprivate |
Definition at line 484 of file ChunkMap.h.
|
private |
Constructs a chunk, returning it.
Doesn't load, doesn't generate
Definition at line 138 of file ChunkMap.cpp.
|
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.
|
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.
|
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.
|
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.
|
friend |
Definition at line 418 of file ChunkMap.h.
|
friend |
Definition at line 421 of file ChunkMap.h.
|
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.
|
private |
The cChunkStay descendants that are currently enabled in this chunkmap.
Definition at line 468 of file ChunkMap.h.
|
mutableprivate |
Definition at line 457 of file ChunkMap.h.
|
private |
Definition at line 463 of file ChunkMap.h.
|
private |
Definition at line 470 of file ChunkMap.h.
|
private |
Definition at line 465 of file ChunkMap.h.