diff options
author | madmaxoft <github@xoft.cz> | 2013-08-18 20:00:50 +0200 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2013-08-18 20:00:50 +0200 |
commit | 861d5c75c968ab1fa5fbb3388b02ebd2e85afc56 (patch) | |
tree | 4d5cf06aac0a07418fbb0e85f781558810690cba /source | |
parent | Fixed piston code griefing damage. (diff) | |
download | cuberite-861d5c75c968ab1fa5fbb3388b02ebd2e85afc56.tar cuberite-861d5c75c968ab1fa5fbb3388b02ebd2e85afc56.tar.gz cuberite-861d5c75c968ab1fa5fbb3388b02ebd2e85afc56.tar.bz2 cuberite-861d5c75c968ab1fa5fbb3388b02ebd2e85afc56.tar.lz cuberite-861d5c75c968ab1fa5fbb3388b02ebd2e85afc56.tar.xz cuberite-861d5c75c968ab1fa5fbb3388b02ebd2e85afc56.tar.zst cuberite-861d5c75c968ab1fa5fbb3388b02ebd2e85afc56.zip |
Diffstat (limited to 'source')
-rw-r--r-- | source/Chunk.cpp | 55 | ||||
-rw-r--r-- | source/Chunk.h | 2 | ||||
-rw-r--r-- | source/ChunkMap.cpp | 18 | ||||
-rw-r--r-- | source/ChunkMap.h | 1 | ||||
-rw-r--r-- | source/Piston.cpp | 14 | ||||
-rw-r--r-- | source/World.cpp | 15 | ||||
-rw-r--r-- | source/World.h | 1 |
7 files changed, 7 insertions, 99 deletions
diff --git a/source/Chunk.cpp b/source/Chunk.cpp index 7bff3fdc9..62d411b0c 100644 --- a/source/Chunk.cpp +++ b/source/Chunk.cpp @@ -1607,61 +1607,6 @@ void cChunk::FastSetBlock(int a_RelX, int a_RelY, int a_RelZ, BLOCKTYPE a_BlockT -void cChunk::SetServerBlock(int a_RelX, int a_RelY, int a_RelZ, BLOCKTYPE a_BlockType, BLOCKTYPE a_BlockMeta) -{ - ASSERT(!((a_RelX < 0) || (a_RelX >= Width) || (a_RelY < 0) || (a_RelY >= Height) || (a_RelZ < 0) || (a_RelZ >= Width))); - - ASSERT(IsValid()); - - const int index = MakeIndexNoCheck(a_RelX, a_RelY, a_RelZ); - const BLOCKTYPE OldBlockType = cChunkDef::GetBlock(m_BlockTypes, index); - const BLOCKTYPE OldBlockMeta = GetNibble(m_BlockMeta, index); - if ((OldBlockType == a_BlockType) && (OldBlockMeta == a_BlockMeta)) - { - return; - } - - MarkDirty(); - - m_BlockTypes[index] = a_BlockType; - - SetNibble(m_BlockMeta, index, a_BlockMeta); - - // ONLY recalculate lighting if it's necessary! - if( - (g_BlockLightValue[OldBlockType ] != g_BlockLightValue[a_BlockType]) || - (g_BlockSpreadLightFalloff[OldBlockType] != g_BlockSpreadLightFalloff[a_BlockType]) || - (g_BlockTransparent[OldBlockType] != g_BlockTransparent[a_BlockType]) - ) - { - m_IsLightValid = false; - } - - // Update heightmap, if needed: - if (a_RelY >= m_HeightMap[a_RelX + a_RelZ * Width]) - { - if (a_BlockType != E_BLOCK_AIR) - { - m_HeightMap[a_RelX + a_RelZ * Width] = (unsigned char)a_RelY; - } - else - { - for (int y = a_RelY - 1; y > 0; --y) - { - if (m_BlockTypes[MakeIndexNoCheck(a_RelX, y, a_RelZ)] != E_BLOCK_AIR) - { - m_HeightMap[a_RelX + a_RelZ * Width] = (unsigned char)y; - break; - } - } // for y - column in m_BlockData - } - } -} - - - - - void cChunk::SendBlockTo(int a_RelX, int a_RelY, int a_RelZ, cClientHandle * a_Client) { // The coords must be valid, because the upper level already does chunk lookup. No need to check them again. diff --git a/source/Chunk.h b/source/Chunk.h index 61f11d6d5..c4eeab6ae 100644 --- a/source/Chunk.h +++ b/source/Chunk.h @@ -148,8 +148,6 @@ public: void GetBlockTypeMeta(int a_RelX, int a_RelY, int a_RelZ, BLOCKTYPE & a_BlockType, NIBBLETYPE & a_BlockMeta); void GetBlockInfo (int a_RelX, int a_RelY, int a_RelZ, BLOCKTYPE & a_BlockType, NIBBLETYPE & a_Meta, NIBBLETYPE & a_SkyLight, NIBBLETYPE & a_BlockLight); - void SetServerBlock(int a_RelX, int a_RelY, int a_RelZ, BLOCKTYPE a_BlockType, BLOCKTYPE a_BlockMeta ); - /** Returns the chunk into which the specified block belongs, by walking the neighbors. Will return self if appropriate. Returns NULL if not reachable through neighbors. */ diff --git a/source/ChunkMap.cpp b/source/ChunkMap.cpp index 4180ae327..5a16495e6 100644 --- a/source/ChunkMap.cpp +++ b/source/ChunkMap.cpp @@ -1171,24 +1171,6 @@ void cChunkMap::SetBlock(int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_B -void cChunkMap::SetServerBlock(int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, BLOCKTYPE a_BlockMeta) -{ - int ChunkX, ChunkZ, X = a_BlockX, Y = a_BlockY, Z = a_BlockZ; - cChunkDef::AbsoluteToRelative( X, Y, Z, ChunkX, ChunkZ ); - - cCSLock Lock(m_CSLayers); - cChunkPtr Chunk = GetChunk( ChunkX, ZERO_CHUNK_Y, ChunkZ ); - if ((Chunk != NULL) && Chunk->IsValid()) - { - Chunk->SetServerBlock(X, Y, Z, a_BlockType, a_BlockMeta ); - m_World->GetSimulatorManager()->WakeUp(a_BlockX, a_BlockY, a_BlockZ, Chunk); - } -} - - - - - bool cChunkMap::GetBlockTypeMeta(int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE & a_BlockType, NIBBLETYPE & a_BlockMeta) { int ChunkX, ChunkZ, X = a_BlockX, Y = a_BlockY, Z = a_BlockZ; diff --git a/source/ChunkMap.h b/source/ChunkMap.h index 07ad4feaa..208d2824e 100644 --- a/source/ChunkMap.h +++ b/source/ChunkMap.h @@ -135,7 +135,6 @@ public: 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 SetServerBlock (int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, BLOCKTYPE a_BlockMeta); 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); diff --git a/source/Piston.cpp b/source/Piston.cpp index 4ea0ce9d1..57fe305c2 100644 --- a/source/Piston.cpp +++ b/source/Piston.cpp @@ -99,7 +99,7 @@ void cPiston::ExtendPiston(int pistx, int pisty, int pistz) { AddDir(pistx, pisty, pistz, pistonMeta, -1); m_World->GetBlockTypeMeta(pistx, pisty, pistz, currBlock, currBlockMeta); - m_World->SetServerBlock( oldx, oldy, oldz, currBlock, currBlockMeta); + m_World->SetBlock( oldx, oldy, oldz, currBlock, currBlockMeta); oldx = pistx; oldy = pisty; oldz = pistz; @@ -114,7 +114,7 @@ void cPiston::ExtendPiston(int pistx, int pisty, int pistz) m_World->BroadcastBlockAction(pistx, pisty, pistz, 0, pistonMeta, pistonBlock); m_World->BroadcastSoundEffect("tile.piston.out", pistx * 8, pisty * 8, pistz * 8, 0.5f, 0.7f); m_World->FastSetBlock( pistx, pisty, pistz, pistonBlock, pistonMeta | 0x8 ); - m_World->SetServerBlock(extx, exty, extz, E_BLOCK_PISTON_EXTENSION, pistonMeta | (IsSticky(pistonBlock) ? 8 : 0)); + m_World->SetBlock(extx, exty, extz, E_BLOCK_PISTON_EXTENSION, pistonMeta | (IsSticky(pistonBlock) ? 8 : 0)); } @@ -134,7 +134,7 @@ void cPiston::RetractPiston( int pistx, int pisty, int pistz ) m_World->BroadcastBlockAction(pistx, pisty, pistz, 1, pistonMeta & ~(8), pistonBlock); m_World->BroadcastSoundEffect("tile.piston.in", pistx * 8, pisty * 8, pistz * 8, 0.5f, 0.7f); - m_World->SetServerBlock(pistx, pisty, pistz, pistonBlock, pistonMeta & ~(8)); + m_World->SetBlock(pistx, pisty, pistz, pistonBlock, pistonMeta & ~(8)); // Check the extension: @@ -156,18 +156,18 @@ void cPiston::RetractPiston( int pistx, int pisty, int pistz ) if (CanPull(tempBlock, tempMeta)) { // Pull the block - m_World->SetServerBlock(pistx, pisty, pistz, tempBlock, tempMeta); - m_World->SetServerBlock(tempx, tempy, tempz, E_BLOCK_AIR, 0); + m_World->SetBlock(pistx, pisty, pistz, tempBlock, tempMeta); + m_World->SetBlock(tempx, tempy, tempz, E_BLOCK_AIR, 0); } else { // Retract without pulling - m_World->SetServerBlock(pistx, pisty, pistz, E_BLOCK_AIR, 0); + m_World->SetBlock(pistx, pisty, pistz, E_BLOCK_AIR, 0); } } else { - m_World->SetServerBlock(pistx, pisty, pistz, E_BLOCK_AIR, 0); + m_World->SetBlock(pistx, pisty, pistz, E_BLOCK_AIR, 0); } } diff --git a/source/World.cpp b/source/World.cpp index 97186fa24..e63e45498 100644 --- a/source/World.cpp +++ b/source/World.cpp @@ -1385,21 +1385,6 @@ void cWorld::FastSetBlock(int a_X, int a_Y, int a_Z, BLOCKTYPE a_BlockType, NIBB -void cWorld::SetServerBlock(int a_X, int a_Y, int a_Z, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) -{ - if (a_BlockType == E_BLOCK_AIR) - { - BlockHandler(GetBlock(a_X, a_Y, a_Z))->OnDestroyed(this, a_X, a_Y, a_Z); - } - m_ChunkMap->SetServerBlock(a_X, a_Y, a_Z, a_BlockType, a_BlockMeta); - - BlockHandler(a_BlockType)->OnPlaced(this, a_X, a_Y, a_Z, a_BlockType, a_BlockMeta); -} - - - - - BLOCKTYPE cWorld::GetBlock(int a_X, int a_Y, int a_Z) { // First check if it isn't queued in the m_FastSetBlockQueue: diff --git a/source/World.h b/source/World.h index 34e350a04..5d3de06d0 100644 --- a/source/World.h +++ b/source/World.h @@ -313,7 +313,6 @@ public: // tolua_begin void SetBlock (int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta); void FastSetBlock (int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta); - void SetServerBlock (int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta); BLOCKTYPE GetBlock (int a_BlockX, int a_BlockY, int a_BlockZ); NIBBLETYPE GetBlockMeta (int a_BlockX, int a_BlockY, int a_BlockZ); void SetBlockMeta (int a_BlockX, int a_BlockY, int a_BlockZ, NIBBLETYPE a_MetaData); |