diff options
author | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2015-03-05 22:21:39 +0100 |
---|---|---|
committer | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2015-03-05 22:21:39 +0100 |
commit | f3da0cf1ae96048bb84a083099faec0b0a736bf1 (patch) | |
tree | c18dd3120d26e49e9c0634b87054a4fc14e6969b /src/Blocks/BlockBed.cpp | |
parent | Handle client 'leave bed' request (diff) | |
download | cuberite-f3da0cf1ae96048bb84a083099faec0b0a736bf1.tar cuberite-f3da0cf1ae96048bb84a083099faec0b0a736bf1.tar.gz cuberite-f3da0cf1ae96048bb84a083099faec0b0a736bf1.tar.bz2 cuberite-f3da0cf1ae96048bb84a083099faec0b0a736bf1.tar.lz cuberite-f3da0cf1ae96048bb84a083099faec0b0a736bf1.tar.xz cuberite-f3da0cf1ae96048bb84a083099faec0b0a736bf1.tar.zst cuberite-f3da0cf1ae96048bb84a083099faec0b0a736bf1.zip |
Diffstat (limited to '')
-rw-r--r-- | src/Blocks/BlockBed.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/Blocks/BlockBed.cpp b/src/Blocks/BlockBed.cpp index 23cb5a042..e56f4bfe0 100644 --- a/src/Blocks/BlockBed.cpp +++ b/src/Blocks/BlockBed.cpp @@ -1,13 +1,9 @@ #include "Globals.h" #include "BlockBed.h" - - - #include "BroadcastInterface.h" #include "Entities/../World.h" #include "Entities/Player.h" -#include "WorldInterface.h" @@ -127,7 +123,14 @@ void cBlockBedHandler::OnUse(cChunkInterface & a_ChunkInterface, cWorldInterface a_Player->SetIsInBed(true); a_Player->SendMessageSuccess("Home position set successfully"); - a_WorldInterface.ScheduleTask(20, cWorld::cTaskTryAwakeSleepingPlayers(Vector3i(a_BlockX + PillowDirection.x, a_BlockY, a_BlockZ + PillowDirection.z), a_ChunkInterface)); + cTimeFastForwardTester Tester; + if (a_WorldInterface.ForEachPlayer(Tester)) + { + cPlayerBedStateUnsetter Unsetter(Vector3i(a_BlockX + PillowDirection.x, a_BlockY, a_BlockZ + PillowDirection.z), a_ChunkInterface); + a_WorldInterface.ForEachPlayer(Unsetter); + a_WorldInterface.SetTimeOfDay(0); + a_ChunkInterface.SetBlockMeta(a_BlockX, a_BlockY, a_BlockZ, Meta & 0x0b); // Clear the "occupied" bit of the bed's block + } } } else |