1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Player/LocalPlayer/RemotePlayer inheritance cleanup (part 2 on X)

* Server/Client Environments now have an helper to cast Player object in the right type to use it
* Server: use RemotePlayer everywhere and remove previous added casts
* Client: use LocalPlayer where needed
* Environment: remove unused functions (getPlayers(), getRandomConnectedPlayer(), getNearestConnectedPlayer())
This commit is contained in:
Loic Blot 2016-10-08 12:21:41 +02:00 committed by Ner'zhul
parent 9393e4a0a8
commit 656faf7373
12 changed files with 97 additions and 156 deletions

View file

@ -127,65 +127,6 @@ Player * Environment::getPlayer(const char *name)
return NULL;
}
Player * Environment::getRandomConnectedPlayer()
{
std::vector<Player*> connected_players = getPlayers(true);
u32 chosen_one = myrand() % connected_players.size();
u32 j = 0;
for(std::vector<Player*>::iterator
i = connected_players.begin();
i != connected_players.end(); ++i) {
if(j == chosen_one) {
Player *player = *i;
return player;
}
j++;
}
return NULL;
}
Player * Environment::getNearestConnectedPlayer(v3f pos)
{
std::vector<Player*> connected_players = getPlayers(true);
f32 nearest_d = 0;
Player *nearest_player = NULL;
for(std::vector<Player*>::iterator
i = connected_players.begin();
i != connected_players.end(); ++i) {
Player *player = *i;
f32 d = player->getPosition().getDistanceFrom(pos);
if(d < nearest_d || nearest_player == NULL) {
nearest_d = d;
nearest_player = player;
}
}
return nearest_player;
}
std::vector<Player*> Environment::getPlayers()
{
return m_players;
}
std::vector<Player*> Environment::getPlayers(bool ignore_disconnected)
{
std::vector<Player*> newlist;
for(std::vector<Player*>::iterator
i = m_players.begin();
i != m_players.end(); ++i) {
Player *player = *i;
if(ignore_disconnected) {
// Ignore disconnected players
if(player->peer_id == 0)
continue;
}
newlist.push_back(player);
}
return newlist;
}
u32 Environment::getDayNightRatio()
{
MutexAutoLock lock(this->m_time_lock);
@ -199,11 +140,6 @@ void Environment::setTimeOfDaySpeed(float speed)
m_time_of_day_speed = speed;
}
float Environment::getTimeOfDaySpeed()
{
return m_time_of_day_speed;
}
void Environment::setDayNightRatioOverride(bool enable, u32 value)
{
MutexAutoLock lock(this->m_time_lock);
@ -625,6 +561,16 @@ ServerMap & ServerEnvironment::getServerMap()
return *m_map;
}
RemotePlayer *ServerEnvironment::getPlayer(const u16 peer_id)
{
return dynamic_cast<RemotePlayer *>(Environment::getPlayer(peer_id));
}
RemotePlayer *ServerEnvironment::getPlayer(const char* name)
{
return dynamic_cast<RemotePlayer *>(Environment::getPlayer(name));
}
bool ServerEnvironment::line_of_sight(v3f pos1, v3f pos2, float stepsize, v3s16 *p)
{
float distance = pos1.getDistanceFrom(pos2);
@ -2349,6 +2295,16 @@ ClientMap & ClientEnvironment::getClientMap()
return *m_map;
}
LocalPlayer *ClientEnvironment::getPlayer(const u16 peer_id)
{
return dynamic_cast<LocalPlayer *>(Environment::getPlayer(peer_id));
}
LocalPlayer *ClientEnvironment::getPlayer(const char* name)
{
return dynamic_cast<LocalPlayer *>(Environment::getPlayer(name));
}
void ClientEnvironment::addPlayer(Player *player)
{
DSTACK(FUNCTION_NAME);