1
0

Fixed world time

git-svn-id: http://mc-server.googlecode.com/svn/trunk@78 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
faketruth 2011-11-08 02:02:13 +00:00
parent 99c672df7e
commit 9ad53cde45
3 changed files with 15 additions and 3 deletions

View File

@ -232,10 +232,10 @@ function HandleTimeCommand( Split, Player )
local Server = cRoot:Get():GetServer()
if( string.upper( Split[2] ) == "DAY") then
cRoot:Get():GetWorld():SetWorldTime( 0 )
Player:GetWorld():SetWorldTime( 0 )
Server:SendMessage( cChatColor.Green .. Player:GetName() .. " set the time to Day.")
elseif( string.upper( Split[2] ) == "NIGHT") then
cRoot:Get():GetWorld():SetWorldTime( 12000 + 1000 )
Player:GetWorld():SetWorldTime( 12000 + 1000 )
Server:SendMessage( cChatColor.Green .. Player:GetName() .. " set the time to Night.")
else
Player:SendMessage( cChatColor.Green .. "Usage: /time [Day/Night]" )

View File

@ -317,7 +317,7 @@ void cWorld::Tick(float a_Dt)
m_WorldTime %= 24000; // 24000 units in a day
bSendTime = true;
}
if( bSendTime ) cRoot::Get()->GetServer()->Broadcast( cPacket_TimeUpdate( (m_WorldTime) ) );
if( bSendTime ) Broadcast( cPacket_TimeUpdate( (m_WorldTime) ) );
LockEntities();
for( cWorld::EntityList::iterator itr = GetEntities().begin(); itr != GetEntities().end();)
@ -651,6 +651,15 @@ const double & cWorld::GetSpawnY()
return m_SpawnY;
}
void cWorld::Broadcast( const cPacket & a_Packet, cClientHandle* a_Exclude /* = 0 */ )
{
for( PlayerList::iterator itr = m_pState->m_Players.begin(); itr != m_pState->m_Players.end(); ++itr)
{
if( (*itr)->GetClientHandle() == a_Exclude || !(*itr)->GetClientHandle()->IsLoggedIn() ) continue;
(*itr)->GetClientHandle()->Send( a_Packet );
}
}
void cWorld::AddPlayer( cPlayer* a_Player )
{
m_pState->m_Players.remove( a_Player );

View File

@ -8,6 +8,7 @@ enum ENUM_ITEM_ID;
#include <list>
class cPacket;
class cWaterSimulator;
class cLavaSimulator;
class cChunkMap;
@ -48,6 +49,8 @@ public:
//void RemoveClient( cClientHandle* a_Client );
//ClientList & GetClients();
void Broadcast( const cPacket & a_Packet, cClientHandle* a_Exclude = 0 );
void AddPlayer( cPlayer* a_Player );
void RemovePlayer( cPlayer* a_Player );
PlayerList & GetAllPlayers();