Commit Graph

11577 Commits

Author SHA1 Message Date
Kahrl b03135548b Use httpfetch_async in serverlist announce code 2013-12-13 18:05:39 +01:00
Kahrl 0a903e69fb Implement urlencode and urldecode 2013-12-13 18:05:35 +01:00
Kahrl 0404bbf671 Rewrite client media download and support hash-based remote download
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-13 18:05:20 +01:00
Kahrl 0ea3e6dbe2 Implement httpfetch module and initialize it from main()
Add curl_parallel_limit setting that will replace media_fetch_threads in
a later commit.

Fix a typo in MutexedQueue::pop_back() that made it impossible to compile
code that used this function. (Noticed this while implementing httpfetch.)
2013-12-13 18:05:10 +01:00
Ilya Zhuravlev 67bf7130ce Fix a bug in GenericCAO GENERIC_CMD_UPDATE_POSITION parsing. 2013-12-13 13:18:00 +04:00
stujones11 d9ef072305 Make line_of_sight return blocking node position 2013-12-12 16:11:00 -05:00
kaeza 33de69a173 Add 'on_prejoinplayer' callback 2013-12-12 13:42:14 -05:00
Ilya Zhuravlev 76036abdb0 Add configurable font shadow. 2013-12-12 21:47:54 +04:00
sapier 4ccaa6d0af Implement search tab and version picker 2013-12-11 23:07:38 +01:00
Ilya Zhuravlev dfd1f87762 Add Lithuanian translation. 2013-12-11 22:10:56 +04:00
PilzAdam 6c4a8766ab Check if width, height or start index of a list[] is negative 2013-12-09 22:39:24 +01:00
RealBadAngel dae03382bf Optimize shaders code. Add settings at compile time. 2013-12-09 13:28:50 +01:00
kwolekr 50b0e9f7a4 Mapgen Indev: Fix segfault in cave generation due to uninitialized variable 2013-12-08 22:13:05 -05:00
Novatux 206565d965 Fix shaders on some GPUs 2013-12-08 08:01:20 +01:00
kwolekr 3cc45fd8ad Fix leak and possible segfault in minetest.set_mapgen_params 2013-12-08 01:37:41 -05:00
kwolekr 83cc882335 EmergeManager: Fix Lua mapgen override param handling 2013-12-08 01:31:06 -05:00
kwolekr bbae8eb751 Dungeongen: Create dungeon gen tuneables; add desert temples for Mapgen V6 2013-12-07 22:45:26 -05:00
ShadowNinja a0dce51af6 Move script_run_callbacks to Lua 2013-12-07 22:03:07 -05:00
ShadowNinja 96f753a108 Fix paralax occlusion setting 2013-12-06 22:42:09 -05:00
sfan5 e15681080e Fix small mistake in Lua API docs 2013-12-06 18:37:32 +01:00
sapier 35f88ac67c Fix win32 jthread implementation 2013-12-06 17:49:10 +01:00
sweetbomber 22dbbf0a6f Improve (re)spawn, add cache_block_before_spawn and max_spawn_height settings 2013-12-05 16:09:02 -05:00
ShadowNinja 000da6b25d Only create one alias metatable 2013-12-04 14:31:55 -05:00
PilzAdam e51ad5337f Use a table in set_physics_override() 2013-12-03 23:20:00 +01:00
PilzAdam 15be2659ea Add sneak and sneak_glitch to set_physics_override() 2013-12-03 23:20:00 +01:00
Sfan5 d9de9f23d9 Fix LevelDB maps 2013-12-03 20:03:20 +01:00
RealBadAngel 2330267d22 Shaders rework. 2013-12-03 18:55:25 +01:00
PilzAdam 60113bde74 Dont move item back when not clicking on a slot 2013-12-03 18:05:36 +01:00
proller 1309e52198 Rename names -> can_see_far_names in announce 2013-12-03 20:14:06 +04:00
sapier 5004f31575 Fix broken async locking in release build 2013-12-03 17:50:00 +02:00
proller 6cbd1b8bf7 Remove link to #, add unlimited_player_transfer_distance to announce 2013-12-03 19:48:43 +04:00
Sfan5 6fa3892a71 Fix MinGW build 2013-12-01 20:58:46 +01:00
sapier 04e9a9d541 Cleanup jthread and fix win32 build 2013-12-01 16:25:46 +01:00
kwolekr f3439c40d8 Cavegen: Fix possible out-of-bounds heightmap access 2013-12-01 08:57:35 -05:00
kwolekr 20e3d550fa Decoration: Add schematic Y-slice probability support 2013-12-01 01:24:59 -05:00
sapier de0cdbc01c Fix log threadname lookup handling not beeing threadsafe 2013-11-30 21:22:15 +01:00
0gb.us e605d70256 Assume a selection box for fences
Similar to assuming a selection box for the nodebox drawtype, minetest.register_item() now assumes a selection box for the fencelike drawtype.
2013-11-30 13:22:50 -05:00
ShadowNinja 4696c59a5f Add error handler to async step 2013-11-30 13:05:13 -05:00
ShadowNinja 4594ba6522 Optimize table creation 2013-11-30 13:05:13 -05:00
Novatux 06baf05c64 Add documentation for minetest.swap_node 2013-11-30 18:57:56 +01:00
Novatux d879a539cd Add minetest.swap_node 2013-11-30 18:37:56 +01:00
Ilya Zhuravlev 752e11e114 Fix MSVC build. 2013-11-30 21:00:18 +04:00
kwolekr 9a927476ca Change default value of is_ground_content to true
Most modders would otherwise forget to explicitly define this, and generated nodes aliased from mods would wall-off caves
2013-11-30 02:37:10 -05:00
kwolekr ff7d7080e3 LuaVoxelManip: Add area parameters back to calc_lighting and set_lighting, made optional this time; also fixed a slight bug with night values being ignored 2013-11-30 00:27:39 -05:00
kwolekr 769b2d7c05 LuaVoxelManip: Add get_light_data() and set_light_data() 2013-11-30 00:01:43 -05:00
MetaDucky 5be786c804 Fixed potential NULL pointer and leak when setting node metadata 2013-11-29 23:35:16 -05:00
kwolekr 747bc40840 Cavegen: Respect is_ground_content MapNode setting; fix some code formatting issues 2013-11-29 20:54:04 -05:00
sapier d19a69cd0d Fix broken thread stop handling 2013-11-30 02:15:31 +01:00
sapier d02ce1cf4d Fix old gcc build 2013-11-29 23:36:18 +01:00
sapier 2e66aca357 Fix modstore/favourites hang by adding asynchronous lua job support 2013-11-29 22:09:14 +01:00