Loic Blot [Fri, 13 Mar 2015 15:35:21 +0000 (16:35 +0100)]
Prepare Protocol v25 init & authentication.
* TOSERVER_INIT and TOCLIENT_INIT renamed to _LEGACY
* TOSERVER_PASSWORD merged from dev-0.5, can use protocol v24 and v25
* TOCLIENT_ACCESS_DENIED merged from dev-0.5, can use protocol v24 and v25, with normalized strings an a custom id for custom errors
* new TOSERVER_INIT packet only send MT version, supported compressions, protocols and serialization, this permit to rework everything later without break the _INIT packet
* new TOSERVER_AUTH packet which auth the client
* new TOCLIENT_HELLO packet which send server serialization version atm
* new TOCLIENT_AUTH_ACCEPTED which is send when TOCLIENT_AUTH was okay. After this packet, the client load datas from servers, like after TOCLIENT_INIT_LEGACY packet
Loic Blot [Fri, 13 Mar 2015 13:14:48 +0000 (14:14 +0100)]
Handle the newly added TOCLIENT_ACCESS_DENIED and TOCLIENT_DELETE_PARTICLESPAWNER
* Rename the handlers from _Legacy to regular, because here we can use same handlers
* Fix some packet names and pseudo handlers
est31 [Tue, 10 Mar 2015 15:22:56 +0000 (16:22 +0100)]
Unescape tooltip texts
Previously, tooltips didn't unescape escaped formspec texts.
Item descriptions that trigger tooltips like inside inventories or for item_image_button
don't need to get unescaped, as they don't get set using formspec, but from lua.
Loic Blot [Thu, 5 Mar 2015 14:34:39 +0000 (15:34 +0100)]
Fix issue #2441: crash on respawn, since a conversion std::list to std::vector on Environment.cpp
* Also change some std::list to std::vector for ClientMap::renderMap
* Remove disabled code in ClientMap::renderMap, disabled since a long time
Loic Blot [Thu, 5 Mar 2015 10:18:17 +0000 (11:18 +0100)]
Server::AsyncRunStep: buffered_messages now uses std::vector instead of std::list. * sendRemoveNode and sendAddNodes are also converted as a side effect
Loic Blot [Thu, 5 Mar 2015 09:43:08 +0000 (10:43 +0100)]
Performance improvement: Use std::list instead of std::vector for request_media, Server::getModNames, Environment::m_simple_objects.
* Also remove unused Server::m_modspaths
Loic Blot [Wed, 4 Mar 2015 15:58:04 +0000 (16:58 +0100)]
ABMHandler and player_collisions use sequential read/write. Switch from std::list to std::vector
* Also remove dead code Map::unloadUnusedData which is dead since a long time
Loic Blot [Wed, 4 Mar 2015 10:46:31 +0000 (11:46 +0100)]
ASyncRunStep doesn't need to lock when do setTimeOfDaySpeed.
* setTimeOfDaySpeed already lock a mutex when modify the value, we don't need to lock all environment.
* add a fine grain lock for getTimeOfDay and setTimeOfDay to solve environment multithread modifications on this value
Loic Blot [Wed, 4 Mar 2015 10:29:34 +0000 (11:29 +0100)]
Send Inventory packet on event, don't check it at each AsyncRunStep.
* Call UpdateCrafting into SendInventory because this functions is only called before SendInventory
* Use Player* instead of peer_id for UpdateCrafting because SendInventory already has the Player* pointer, then don't loop for searching Player* per peer_id
* m_env_mutex don't need to be used with this modification because it's already locked before the calls
Loic Blot [Sun, 22 Feb 2015 16:01:03 +0000 (17:01 +0100)]
Add find_surface_nodes_in_area LUA call which permit to only get the nodes which touch air. This permit to massively improve performance for mods like plantlife
Markus Koschany [Sat, 21 Feb 2015 16:46:33 +0000 (17:46 +0100)]
Improve FindIrrlicht.cmake module
Linux distributions prefer to link against a shared version of the Irrlicht
engine instead of using embedded code copies of the same. Search for this
shared version first and use that but fall back to the static version if it
does not exist.
This also fixes https://github.com/minetest/minetest/issues/2163
Loic Blot [Thu, 19 Feb 2015 08:38:01 +0000 (09:38 +0100)]
Unit tests must be done at integration process.
* Remove --enable-unittests and --disable-unittests and add --do-unittests function
* --do-unittests function will exit 0 on success.
* minetest and minetestserver binaries are launched with --do-unittests in travis build.