142 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
Novatux
92d806ab21 Add minetest.swap_node 2013-11-30 18:37:56 +01:00
proller
670ac4ac88 Masterserver update 2013-10-18 01:32:49 +04:00
kwolekr
d8e65be2d3 Weather: Clean up getHeat/getHumidity somewhat 2013-09-16 23:33:53 -04:00
Sfan5
4901d1e853 Make it compile 2013-09-09 22:50:50 +02:00
Ilya Zhuravlev
30af8e75d7 Add dummy and LevelDB database backends 2013-09-09 22:50:50 +02:00
PilzAdam
49f6e00cf3 Use player:set_hotbar_image() instead of hardcoded hotbar.png 2013-09-05 00:21:16 +02:00
Kahrl
ee90d438b8 Omnicleanup: header cleanup, add ModApiUtil shared between game and mainmenu 2013-08-14 21:03:33 +02:00
Perttu Ahola
cc1a1cd688 Fix server getting completely choked up on even a little of DoS
* If client count is unbearable, immediately delete denied clients
* Re-prioritize the checking order of things about incoming clients
* Remove a huge CPU-wasting exception in ReliablePacketBuffer
2013-08-04 10:44:37 +03:00
proller
f821824943 Weather backward compatibility 2013-08-02 00:51:36 +04:00
RealBadAngel
b737eaa357 Add set_breath and get_breath to lua API. 2013-07-20 20:34:11 +02:00
Kahrl
780a234d48 Add ObjectRef.hud_set_hotbar_itemcount and add TOCLIENT_HUD_SET_PARAM 2013-05-26 00:23:33 +02:00
sapier
2dceda8890 Move scriptapi to separate folder (by sapier)
On the lua side, notably minetest.env:<function>(<args>) should now
be replaced by minetest.<function>(<args>).
The old way is and will stay supported for a long time.

Also:
Update and clean up lua_api.txt (by celeron55)
Move EnvRef to lua and remove add_rat and add_firefly (by kahrl)
Add separate src/util/CMakeLists.txt, other minor fixes (by kahrl)
2013-05-25 00:51:02 +02:00
kwolekr
c3b246b585 Generalize hud_builtin_enable into hud_set_flags 2013-04-25 19:37:36 -04:00
Diego Martínez
b02e6b1403 Added support to disable built-in HUD elements 2013-04-24 17:28:00 +03:00
ShadowNinja
e88d39e0bb Add option to not prepend "Server -!- " to messages sent with minetest.chat_send_player() 2013-04-23 09:47:08 +03:00
kwolekr
45409b509b Split HUD code off to hud.cpp, make into a class, extensive Lua HUD modification 2013-04-18 02:19:31 -04:00
Jonathon Anderson
2cb3f5eb6b Lua HUD 2013-04-18 02:14:33 -04:00
kwolekr
6d9ff57f15 Add Mapgen V7, reorganize biomes 2013-04-07 00:50:21 -04:00
PilzAdam
dd744fc13f New damage system, add damageGroups to ToolCapabilities, bump protocol version 2013-03-29 20:14:09 +01:00
Jeija
a8562392b0 Allow spawning particles from the server, from lua
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-23 23:16:29 +01:00
Ilya Zhuravlev
a12df55f29 Migrate to STL containers/algorithms. 2013-03-11 19:08:39 -04:00
kwolekr
c7f9903b98 Merge pull request #482 from proller/liquid
finite liquid
2013-02-25 20:52:24 -08:00
kwolekr
6291bf3953 Remove dead code, relocate some code 2013-02-25 23:11:12 -05:00
kwolekr
e2466d6b69 Add emerge.cpp, initial EmergeThread changes
- Neatly placed all emerge related code into a new file, emerge.cpp
- Greatly cleaned up the code in EmergeThread::Thread()
- Reworked Emerge queue.  Now an actual std::queue of v3s16 block positions
- Removed the completely unnecessary map of peer ids requesting blocks
2013-02-25 22:56:18 -05:00
Sfan5
3fab3825aa Update Copyright Years 2013-02-24 20:15:24 +01:00
PilzAdam
269f01224b Change Minetest-c55 to Minetest 2013-02-24 18:49:03 +01:00
proller
22ec55cd9e new adjustable finite liquid 2013-02-24 18:39:07 +04:00
proller
a06297e4e7 new auto masterserver 2013-02-22 02:04:53 +04:00
MirceaKitsune
f0f07b20f0 Improved Player Physics 2013-02-14 06:21:30 +10:00
kwolekr
3d9ebbcc63 Finish and clean up mapgen configuration 2013-01-21 21:41:37 +02:00
kwolekr
b2ece95f10 Add initial Lua biomedef support, fixed biome selection 2013-01-21 21:41:37 +02:00
kwolekr
6df7f001e5 The new mapgen, noise functions, et al. 2013-01-21 21:41:33 +02:00
Jürgen Doser
cb549603ac Basic support for configuring which mods to load for each world
settings.h: added function to return all keys used in settings, and a
function to remove a setting

mods.{h,cpp}: added class ModConfiguration that represents a subset of the installed mods.

server.{h,cpp}: server does not load add-on mods that are disabled in
the world.mt file. mods are disabled by a setting of the form
"load_mod_<modname> = false". if no load_mod_<modname> = ... setting
is found, the mod is loaded anyways for backwards compatibilty. server
also complains to errorstream about mods with unstatisfied
dependencies and about mods that are not installed.

guiConfigureWorld.{h,cpp}: shows a treeview of installed add-on mods
and modpacks with little icons in front of their name indicating their
status: a checkmark for enabled mods, a cross for disabled mods, a
question mark for "new" mods

Mods can be enabled/disabled by a checkbox. Mods also show a list of
dependencies and reverse dependencies. double-click on a mod in
dependency or reverse dependency listbox selects the corresponding
mod. Enabling a mod also enables all its dependencies. Disabling a mod
also disables all its reverse dependencies.

For modpacks, show buttons to enable/disable all mods (recursively,
including their dependencies) in it.

Button "Save" saves the current settings to the world.mt file and
returns to the main menu. Button "Cancel" returns to main menu without
saving.

basic keyboard controls (if the proper widget has keyboard focus):

up/down: scroll through tree of mods
left/right: collaps/expand a modpack
space: enable/disable the selected mod
2013-01-21 17:31:50 +02:00
sapier
59ab6e50b5 Fix buttons not working for Lua-triggered formspecs 2013-01-07 19:00:33 +02:00
sapier
2683dde4e8 Add TOCLIENT_SHOW_FORMSPEC to display formspecs at client from lua 2013-01-02 20:59:37 +02:00
Kahrl
c9e7e8ba3c ShaderSource and silly example shaders 2012-12-02 00:46:18 +02:00
Perttu Ahola
d0dff79761 Ranged support of protocol version on server side 2012-11-29 22:08:25 +02:00
Perttu Ahola
b39e2b3549 Add enable_rollback_recording setting, defaulting to false 2012-07-28 03:08:09 +03:00
Perttu Ahola
3303470fbc Experimental-ish rollback functionality 2012-07-27 02:27:18 +03:00
Perttu Ahola
c2cb98c1a6 Detached inventories 2012-07-24 20:57:17 +03:00
Matthew I
b320cc2d74 Add minetest.get_modnames() to Lua API 2012-07-22 13:36:03 +03:00
Perttu Ahola
7564aae27e Allow defining player's inventory form in Lua 2012-07-19 14:09:16 +03:00
Perttu Ahola
ede1480ae9 Optimize headers 2012-06-17 04:03:39 +03:00
Perttu Ahola
ec937ecdd8 Properly and efficiently use split utility headers 2012-06-17 02:40:36 +03:00
Perttu Ahola
e70b6545b1 Switch the license to be LGPLv2/later, with small parts still remaining as GPLv2/later, by agreement of major contributors 2012-06-05 18:54:07 +03:00
Kahrl
20492dbc41 WIP node metadata, node timers 2012-06-03 22:31:00 +03:00
Perttu Ahola
260d45f0b5 Allow getting the path of builtin.lua using minetest.get_modpath("__builtin") 2012-04-01 12:38:14 +03:00
Perttu Ahola
0abf89eb12 Add 'fly' and 'fast' privileges and the underlying privileges-to-client system 2012-03-31 16:25:02 +03:00
Perttu Ahola
e6a7e89b85 Reimplement authentication handler in Lua; now we have 1) infinite privilege names, 2) minetest.register_authentication_handler() 2012-03-30 18:42:18 +03:00