3998 Commits

Author SHA1 Message Date
Kahrl
b34a01f4c8 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
e9737be595 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
ed09f0e7e3 Fix a bug in GenericCAO GENERIC_CMD_UPDATE_POSITION parsing. 2013-12-13 13:18:00 +04:00
stujones11
ace4953a52 Make line_of_sight return blocking node position 2013-12-12 16:11:00 -05:00
kaeza
ba7af927a7 Add 'on_prejoinplayer' callback 2013-12-12 13:42:14 -05:00
Ilya Zhuravlev
27f9fd26a5 Add configurable font shadow. 2013-12-12 21:47:54 +04:00
sapier
723f6e156a Implement search tab and version picker 2013-12-11 23:07:38 +01:00
Ilya Zhuravlev
b88a7f4f24 Add Lithuanian translation. 2013-12-11 22:10:56 +04:00
PilzAdam
6651b3387c Check if width, height or start index of a list[] is negative 2013-12-09 22:39:24 +01:00
RealBadAngel
9d6015b41d Optimize shaders code. Add settings at compile time. 2013-12-09 13:28:50 +01:00
kwolekr
2aeade042c Mapgen Indev: Fix segfault in cave generation due to uninitialized variable 2013-12-08 22:13:05 -05:00
Novatux
d1f08635ac Fix shaders on some GPUs 2013-12-08 08:01:20 +01:00
kwolekr
632e68a71d Fix leak and possible segfault in minetest.set_mapgen_params 2013-12-08 01:37:41 -05:00
kwolekr
de76e0253e EmergeManager: Fix Lua mapgen override param handling 2013-12-08 01:31:06 -05:00
kwolekr
348d16096f Dungeongen: Create dungeon gen tuneables; add desert temples for Mapgen V6 2013-12-07 22:45:26 -05:00
ShadowNinja
7861d84bcb Move script_run_callbacks to Lua 2013-12-07 22:03:07 -05:00
ShadowNinja
0f143dcce2 Fix paralax occlusion setting 2013-12-06 22:42:09 -05:00
sfan5
d7e524cd79 Fix small mistake in Lua API docs 2013-12-06 18:37:32 +01:00
sapier
240057d61c Fix win32 jthread implementation 2013-12-06 17:49:10 +01:00
sweetbomber
a85c68049a Improve (re)spawn, add cache_block_before_spawn and max_spawn_height settings 2013-12-05 16:09:02 -05:00
ShadowNinja
e3785074a3 Only create one alias metatable 2013-12-04 14:31:55 -05:00
PilzAdam
8dae6c5967 Use a table in set_physics_override() 2013-12-03 23:20:00 +01:00
PilzAdam
844cac9e3a Add sneak and sneak_glitch to set_physics_override() 2013-12-03 23:20:00 +01:00
Sfan5
932519784b Fix LevelDB maps 2013-12-03 20:03:20 +01:00
RealBadAngel
c18af13697 Shaders rework. 2013-12-03 18:55:25 +01:00
PilzAdam
fc831c5418 Dont move item back when not clicking on a slot 2013-12-03 18:05:36 +01:00
proller
a8377a8a83 Rename names -> can_see_far_names in announce 2013-12-03 20:14:06 +04:00
sapier
646c9837ff Fix broken async locking in release build 2013-12-03 17:50:00 +02:00
proller
6a46180075 Remove link to #, add unlimited_player_transfer_distance to announce 2013-12-03 19:48:43 +04:00
Sfan5
bb58d4f2fb Fix MinGW build 2013-12-01 20:58:46 +01:00
sapier
396602432c Cleanup jthread and fix win32 build 2013-12-01 16:25:46 +01:00
kwolekr
665b7fe8c4 Cavegen: Fix possible out-of-bounds heightmap access 2013-12-01 08:57:35 -05:00
kwolekr
017876a37c Decoration: Add schematic Y-slice probability support 2013-12-01 01:24:59 -05:00
sapier
a5cd5a3a5f Fix log threadname lookup handling not beeing threadsafe 2013-11-30 21:22:15 +01:00
0gb.us
6db0a87763 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
6ed9bc0eb2 Add error handler to async step 2013-11-30 13:05:13 -05:00
ShadowNinja
2741a7e6e0 Optimize table creation 2013-11-30 13:05:13 -05:00
Novatux
b316c48e59 Add documentation for minetest.swap_node 2013-11-30 18:57:56 +01:00
Novatux
92d806ab21 Add minetest.swap_node 2013-11-30 18:37:56 +01:00
Ilya Zhuravlev
0bac74a9a4 Fix MSVC build. 2013-11-30 21:00:18 +04:00
kwolekr
d239e2e468 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
5b10914dcd 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
876a1eb687 LuaVoxelManip: Add get_light_data() and set_light_data() 2013-11-30 00:01:43 -05:00
MetaDucky
7086a6c35b Fixed potential NULL pointer and leak when setting node metadata 2013-11-29 23:35:16 -05:00
kwolekr
ea3c3fb481 Cavegen: Respect is_ground_content MapNode setting; fix some code formatting issues 2013-11-29 20:54:04 -05:00
sapier
3520139afe Fix broken thread stop handling 2013-11-30 02:15:31 +01:00
sapier
4afa10f33a Fix old gcc build 2013-11-29 23:36:18 +01:00
sapier
b1a9e58d6a Fix modstore/favourites hang by adding asynchronous lua job support 2013-11-29 22:09:14 +01:00
sapier
326a3e4f8f Split server/client port setting to avoid port number clashes in mainmenu 2013-11-28 21:43:06 +01:00
ShadowNinja
55ebd079f4 Don't use variable length arrays 2013-11-28 11:22:41 -05:00