Fixed the extreme strain on the world tick thread.
Block changes were sent even with empty changesets, causing a lot of lost CPU cycles.
This commit is contained in:
parent
53455a10fa
commit
94f8884f60
@ -573,6 +573,11 @@ void cChunk::ProcessQueuedSetBlocks(void)
|
|||||||
|
|
||||||
void cChunk::BroadcastPendingBlockChanges(void)
|
void cChunk::BroadcastPendingBlockChanges(void)
|
||||||
{
|
{
|
||||||
|
if (m_PendingSendBlocks.empty())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
for (cClientHandleList::iterator itr = m_LoadedByClient.begin(), end = m_LoadedByClient.end(); itr != end; ++itr)
|
for (cClientHandleList::iterator itr = m_LoadedByClient.begin(), end = m_LoadedByClient.end(); itr != end; ++itr)
|
||||||
{
|
{
|
||||||
(*itr)->SendBlockChanges(m_PosX, m_PosZ, m_PendingSendBlocks);
|
(*itr)->SendBlockChanges(m_PosX, m_PosZ, m_PendingSendBlocks);
|
||||||
|
@ -1502,6 +1502,8 @@ void cClientHandle::SendBlockChange(int a_BlockX, int a_BlockY, int a_BlockZ, BL
|
|||||||
|
|
||||||
void cClientHandle::SendBlockChanges(int a_ChunkX, int a_ChunkZ, const sSetBlockVector & a_Changes)
|
void cClientHandle::SendBlockChanges(int a_ChunkX, int a_ChunkZ, const sSetBlockVector & a_Changes)
|
||||||
{
|
{
|
||||||
|
ASSERT(!a_Changes.empty()); // We don't want to be sending empty change packets!
|
||||||
|
|
||||||
m_Protocol->SendBlockChanges(a_ChunkX, a_ChunkZ, a_Changes);
|
m_Protocol->SendBlockChanges(a_ChunkX, a_ChunkZ, a_Changes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user