aboutsummaryrefslogtreecommitdiff
path: root/src/client.cpp
AgeCommit message (Collapse)Author
2013-12-13Rewrite client media download and support hash-based remote downloadKahrl
Move most of the media-related code in client.cpp into a new class ClientMediaDownloader (clientmedia.cpp, clientmedia.h). Among other things, this class does the following things: - Download [remote_server][sha1] instead of [remote_server][name]. This is to support servers that provide the same file name with different contents. - Initially fetch [remote_server]index.mth. This file should follow the Minetest Hashset format (currently version 1) and contain a list of SHA1 hashes that exist on the server. - The list of needed SHA1s is uploaded (via HTTP POST) when index.mth is requested, so servers can optionally narrow down the list to the needs of the client. - If index.mth is missing (HTTP response code 404), we enter compat mode, fetching [remote_server][name] as before this commit. - remote_server can now contain multiple servers, separated by commas. The downloader code attempts to split requests between the different servers, as permitted by each server's index.mth. If one server claims to have a file but actually doesn't (or something fails), we ask a different server that also claims to have it. - As before, when none of the remote servers provide a particular file, we download it via the conventional method, i.e. using the minetest protocol: TOSERVER_REQUEST_MEDIA / TOCLIENT_MEDIA. - Bugfix: Every downloaded file's SHA1 is now verified against the SHA1 announced by the minetest server (before loading it and inserting it into the file cache). - Bugfix: Only send TOSERVER_RECEIVED_MEDIA when we actually have all media. This should fix #863.
2013-12-01Cleanup jthread and fix win32 buildsapier
2013-11-30Add minetest.swap_nodeNovatux
2013-11-06Correct useragent in http queriesproller
Net struct init
2013-09-15Always use builtin JThread librarykwolekr
2013-09-05Use player:set_hotbar_image() instead of hardcoded hotbar.pngPilzAdam
2013-08-14Omnicleanup: header cleanup, add ModApiUtil shared between game and mainmenuKahrl
2013-08-02Weather backward compatibilityproller
2013-07-20Add set_breath and get_breath to lua API.RealBadAngel
2013-07-13Masterserver mods announse, ipv6, better curl errorsproller
2013-07-07When server sends late media, log to errorstream instead of crashing.Kahrl
Do a check for valid num_files before doing assert(!m_mesh_update_thread.IsRunning()); In particular, don't execute the assertion if all media has already been received.
2013-07-05Don't rebuild the dummy shader (less SourceShaderCache warning spam)Kahrl
Also write something about rebuilding shaders to infostream in Client::afterContentReceived()
2013-07-02Remove texture atlas / AtlasPointer, rename getTextureRaw to getTextureKahrl
2013-06-23Add support for IPv6proller
Two new configuration options are added: - "enable_ipv6" to enable/disable the overall use of IPv6 - "ipv6_server" to enable/disable the use of IPv6 sockets when running a server (when "enable_ipv6" is enabled)
2013-06-19Add drowningPilzAdam
2013-05-26Add ObjectRef.hud_set_hotbar_itemcount and add TOCLIENT_HUD_SET_PARAMKahrl
2013-05-20Fix typo in particle spawningMetaDucky
2013-05-18Fix memory leak in MeshUpdateThreadPilzAdam
2013-05-13Add progress bar to item visuals preloadingZeg9
2013-05-11Fix memory leak: remove InventoryAction after sending and applyingPilzAdam
2013-04-25Generalize hud_builtin_enable into hud_set_flagskwolekr
2013-04-24Added support to disable built-in HUD elementsDiego Martínez
2013-04-23Fixes possible crash when using hud_change with "align" or "offset"Diego Martínez
2013-04-23Fix to: addUpdateMeshTaskWithEdgeRealBadAngel
Check in all 6 directions instead of just 3.
2013-04-23Added offset support for HUD itemsDiego Martínez
2013-04-23Added support for alignment in HUD itemsDiego Martínez
2013-04-18Split HUD code off to hud.cpp, make into a class, extensive Lua HUD modificationkwolekr
2013-04-18Lua HUDJonathon Anderson
2013-04-07fix memory leak in loadMediasapier
2013-04-07fix 3d model mesh leaksapier
2013-04-05Fix nick completionPilzAdam
2013-03-23Allow spawning particles from the server, from luaJeija
Spawn single particles or make use of ParticleSpawner for many randomly spawned particles. Accessible in Lua using minetest.spawn_particle and minetest.add_particlespawner. Increase Protocol Version to 17. Conflicts: src/clientserver.h
2013-03-11Migrate to STL containers/algorithms.Ilya Zhuravlev
2013-02-24Update Copyright YearsSfan5
2013-02-24Change Minetest-c55 to MinetestPilzAdam
2013-02-14Improved Player PhysicsMirceaKitsune
2013-01-07Fix buttons not working for Lua-triggered formspecssapier
2013-01-02Add TOCLIENT_SHOW_FORMSPEC to display formspecs at client from luasapier
2012-12-26Fix 'longjmp causes uninitialized stack frame' in cURLPilzAdam
2012-12-17Make m_media_fetch_threads to contain MediaFetchThread* instead of ↵Ilya Zhuravlev
MediaFetchThread
2012-12-16Added ability to fetch media from remote server (using cURL library)Ilya Zhuravlev
2012-12-02Don't send player position from client to server if the player hasn't movedMirceaKitsune
2012-12-02ShaderSource and silly example shadersKahrl
2012-12-02Add setting preload_item_visualsPerttu Ahola
2012-12-02On-demand item meshes and texturesPerttu Ahola
2012-12-02Modify some client log message levelsPerttu Ahola
2012-11-26Default server step to 0.1s and sync object/player update intervals to itPerttu Ahola
2012-11-26Move util/serialize.h out from staticobject.h for smaller header dependenciesPerttu Ahola
2012-11-26New PROTOCOL_VERSION scheme (allow client to support a range of versions)Perttu Ahola
2012-11-25RealBadAngel's patch which allows the lua api to read pressed player keys. ↵MirceaKitsune
This should make it possible to change the player's animation based on what he is doing Correct lua api version number Always update animations and attachments after the entity is added to scene client side. Fixes animations not being applied in client initialization for some reason. Attachments should be re-tested now just to be safe. Fix a segmentation fault caused by reaching materials that didn't exist in a loop for setting texture