BEGIN_DEBUG_EXCEPTION_HANDLER
+ porting::setThreadName("MeshUpdateThread");
+
while(!StopRequested())
{
QueuedMeshUpdate *q = m_queue_in.pop();
m_time_of_day_set = true;
u32 dr = m_env.getDayNightRatio();
- verbosestream<<"Client: time_of_day="<<time_of_day
+ infostream<<"Client: time_of_day="<<time_of_day
<<" time_speed="<<time_speed
<<" dr="<<dr<<std::endl;
}
event.override_day_night_ratio.ratio_f = day_night_ratio_f;
m_client_event_queue.push_back(event);
}
+ else if(command == TOCLIENT_LOCAL_PLAYER_ANIMATIONS)
+ {
+ std::string datastring((char *)&data[2], datasize - 2);
+ std::istringstream is(datastring, std::ios_base::binary);
+
+ LocalPlayer *player = m_env.getLocalPlayer();
+ assert(player != NULL);
+
+ player->local_animations[0] = readV2S32(is);
+ player->local_animations[1] = readV2S32(is);
+ player->local_animations[2] = readV2S32(is);
+ player->local_animations[3] = readV2S32(is);
+ player->local_animation_speed = readF1000(is);
+ }
+ else if(command == TOCLIENT_EYE_OFFSET)
+ {
+ std::string datastring((char *)&data[2], datasize - 2);
+ std::istringstream is(datastring, std::ios_base::binary);
+
+ LocalPlayer *player = m_env.getLocalPlayer();
+ assert(player != NULL);
+
+ player->eye_offset_first = readV3F1000(is);
+ player->eye_offset_third = readV3F1000(is);
+ }
else
{
infostream<<"Client: Ignoring unknown command "
return m_con.getPeerStat(PEER_ID_SERVER,con::AVG_RTT);
}
+float Client::getCurRate(void)
+{
+ return ( m_con.getLocalStat(con::CUR_INC_RATE) +
+ m_con.getLocalStat(con::CUR_DL_RATE));
+}
+
+float Client::getAvgRate(void)
+{
+ return ( m_con.getLocalStat(con::AVG_INC_RATE) +
+ m_con.getLocalStat(con::AVG_DL_RATE));
+}
+
// IGameDef interface
// Under envlock
IItemDefManager* Client::getItemDefManager()