diff options
author | Mattes D <github@xoft.cz> | 2014-02-02 16:25:30 +0100 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2014-02-02 16:25:30 +0100 |
commit | 3cfd9ce269f695e27c9f62cbd95b7a3b60963581 (patch) | |
tree | ca1faaae5c7d0fbd756f4cee56f61500ba0a12ed /src/ChunkMap.h | |
parent | Fixed #620 (diff) | |
parent | Added missing files (diff) | |
download | cuberite-3cfd9ce269f695e27c9f62cbd95b7a3b60963581.tar cuberite-3cfd9ce269f695e27c9f62cbd95b7a3b60963581.tar.gz cuberite-3cfd9ce269f695e27c9f62cbd95b7a3b60963581.tar.bz2 cuberite-3cfd9ce269f695e27c9f62cbd95b7a3b60963581.tar.lz cuberite-3cfd9ce269f695e27c9f62cbd95b7a3b60963581.tar.xz cuberite-3cfd9ce269f695e27c9f62cbd95b7a3b60963581.tar.zst cuberite-3cfd9ce269f695e27c9f62cbd95b7a3b60963581.zip |
Diffstat (limited to '')
-rw-r--r-- | src/ChunkMap.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/ChunkMap.h b/src/ChunkMap.h index e9d8ee30b..62c74d81c 100644 --- a/src/ChunkMap.h +++ b/src/ChunkMap.h @@ -12,6 +12,7 @@ class cWorld; +class cWorldInterface; class cItem; class MTRand; class cChunkStay; @@ -136,6 +137,9 @@ public: bool HasChunkAnyClients (int a_ChunkX, int a_ChunkZ); int GetHeight (int a_BlockX, int a_BlockZ); // Waits for the chunk to get loaded / generated bool TryGetHeight (int a_BlockX, int a_BlockZ, int & a_Height); // Returns false if chunk not loaded / generated + void FastSetBlock(int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta); + + void FastSetQueuedBlocks(); void FastSetBlocks (sSetBlockList & a_BlockList); void CollectPickupsByPlayer(cPlayer * a_Player); @@ -144,7 +148,7 @@ public: NIBBLETYPE GetBlockSkyLight (int a_BlockX, int a_BlockY, int a_BlockZ); NIBBLETYPE GetBlockBlockLight(int a_BlockX, int a_BlockY, int a_BlockZ); void SetBlockMeta (int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockMeta); - void SetBlock (int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, BLOCKTYPE a_BlockMeta); + void SetBlock (cWorldInterface & a_WorldInterface, int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, BLOCKTYPE a_BlockMeta); void QueueSetBlock(int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, BLOCKTYPE a_BlockMeta, Int64 a_Tick, BLOCKTYPE a_PreviousBlockType = E_BLOCK_AIR); bool GetBlockTypeMeta (int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE & a_BlockType, NIBBLETYPE & a_BlockMeta); bool GetBlockInfo (int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE & a_BlockType, NIBBLETYPE & a_Meta, NIBBLETYPE & a_SkyLight, NIBBLETYPE & a_BlockLight); @@ -388,6 +392,9 @@ private: cEvent m_evtChunkValid; // Set whenever any chunk becomes valid, via ChunkValidated() cWorld * m_World; + + cCriticalSection m_CSFastSetBlock; + sSetBlockList m_FastSetBlockQueue; cChunkPtr GetChunk (int a_ChunkX, int a_ChunkY, int a_ChunkZ); // Also queues the chunk for loading / generating if not valid cChunkPtr GetChunkNoGen (int a_ChunkX, int a_ChunkY, int a_ChunkZ); // Also queues the chunk for loading if not valid; doesn't generate |