1
0

Handle client 'leave bed' request

* Fixes #1728
This commit is contained in:
Tiger Wang
2015-02-08 21:21:48 +00:00
parent 1ce9164694
commit 3869f76cc2
9 changed files with 92 additions and 61 deletions

View File

@@ -47,6 +47,7 @@
#include "Generating/Trees.h"
#include "Bindings/PluginManager.h"
#include "Blocks/BlockHandler.h"
#include "Blocks/BlockBed.cpp"
#include "Tracer.h"
@@ -3578,7 +3579,7 @@ void cWorld::cTaskUnloadUnusedChunks::Run(cWorld & a_World)
////////////////////////////////////////////////////////////////////////////////
// cWorld::cTaskSendBlockTo
// cWorld::cTaskSendBlockToAllPlayers
cWorld::cTaskSendBlockToAllPlayers::cTaskSendBlockToAllPlayers(std::vector<Vector3i> & a_SendQueue) :
m_SendQueue(a_SendQueue)
@@ -3620,6 +3621,30 @@ void cWorld::cTaskSendBlockToAllPlayers::Run(cWorld & a_World)
////////////////////////////////////////////////////////////////////////////////
// cWorld::cTaskSendBlockToAllPlayers
cWorld::cTaskTryAwakeSleepingPlayers::cTaskTryAwakeSleepingPlayers(const Vector3i & a_Position, cChunkInterface & a_ChunkInterface) :
m_Position(a_Position),
m_ChunkInterface(a_ChunkInterface)
{
}
void cWorld::cTaskTryAwakeSleepingPlayers::Run(cWorld & a_World)
{
cTimeFastForwardTester Tester;
if (a_World.ForEachPlayer(Tester))
{
cPlayerBedStateUnsetter Unsetter(m_Position, m_ChunkInterface);
a_World.ForEachPlayer(Unsetter);
a_World.SetTimeOfDay(0);
}
}
////////////////////////////////////////////////////////////////////////////////
// cWorld::cChunkGeneratorCallbacks: