diff options
author | Loic Blot <loic.blot@unix-experience.fr> | 2016-10-08 23:13:38 +0200 |
---|---|---|
committer | Ner'zhul <nerzhul@users.noreply.github.com> | 2016-10-09 15:17:10 +0200 |
commit | 70f104be076321330a0827010704761a040d8ec7 (patch) | |
tree | e6d297b317cb37f85f51f65164bf0537ee8586d1 /src/client.cpp | |
parent | b3fc133442724cc2785d0c7e2beea2d782d8a087 (diff) | |
download | minetest-70f104be076321330a0827010704761a040d8ec7.tar.gz minetest-70f104be076321330a0827010704761a040d8ec7.tar.bz2 minetest-70f104be076321330a0827010704761a040d8ec7.zip |
Environment cleanup
* Move client list to ServerEnvironment and use RemotePlayer members instead of Player
* ClientEnvironment only use setLocalPlayer to specify the current player
* Remove ClientEnvironment dead code on player list (in fact other players are CAO not Player objects)
* Drop LocalPlayer::getPlayer(xxx) functions which aren't used.
* Improve a little bit performance by using const ref list for ClientEnvironment::getPlayerNames() & Client::getConnectedPlayerNames()
* Drop isLocal() function from (Local)Player which is not needed anymore because of previous changes
This change permits to cleanup shared client list which is very old code.
ClientEnvironment doesn't use player list anymore, it only contains the local player, as addPlayer is only called from Client constructor client side.
Clients are only CAO on client side, this cleanup permit to remove confusion about player list.
Diffstat (limited to 'src/client.cpp')
-rw-r--r-- | src/client.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/client.cpp b/src/client.cpp index cd010e592..62bd274aa 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -257,7 +257,7 @@ Client::Client( m_localdb(NULL) { // Add local player - m_env.addPlayer(new LocalPlayer(this, playername)); + m_env.setLocalPlayer(new LocalPlayer(this, playername)); m_mapper = new Mapper(device, this); m_cache_save_interval = g_settings->getU16("server_map_save_interval"); @@ -1418,8 +1418,9 @@ Inventory* Client::getInventory(const InventoryLocation &loc) break; case InventoryLocation::PLAYER: { - LocalPlayer *player = m_env.getPlayer(loc.name.c_str()); - if(!player) + // Check if we are working with local player inventory + LocalPlayer *player = m_env.getLocalPlayer(); + if (!player || strcmp(player->getName(), loc.name.c_str()) != 0) return NULL; return &player->inventory; } @@ -1500,11 +1501,6 @@ ClientActiveObject * Client::getSelectedActiveObject( return NULL; } -std::list<std::string> Client::getConnectedPlayerNames() -{ - return m_env.getPlayerNames(); -} - float Client::getAnimationTime() { return m_animation_time; @@ -1664,7 +1660,7 @@ void Client::addUpdateMeshTaskForNode(v3s16 nodepos, bool ack_to_server, bool ur ClientEvent Client::getClientEvent() { ClientEvent event; - if(m_client_event_queue.size() == 0) { + if (m_client_event_queue.empty()) { event.type = CE_NONE; } else { |